Rake db:db:migrate之前的种子

时间:2015-01-29 10:14:31

标签: ruby-on-rails ruby

每次播种时我都会rake db:migrate收到错误。我不想迁移,因为它在我的数据库中查找尚不存在的表失败。我怎么能忽略这一点并继续种子?

mmahalwy @ ~/Desktop/Code/API [56] → rake db:seed
You have 4 pending migrations:
  20141206123759 AddEsAnalyzerColumnToLanguageTable
  20141213090426 CreateTextFontView
  20141213090434 UpdateLemmaAndStem
  20141230124205 ChangeTextFontView
Run `rake db:migrate` to update your database then try again.

注意:我有一个structure.sql文件,其中包含用于创建表和从yml播种数据的所有sql命令。我的迁移当前需要在数据/表位于数据库之后运行。

2 个答案:

答案 0 :(得分:4)

你可以完全绕过rake并直接“种子”。我并不是在鼓吹它,但它会解决你眼前的问题:

rails runner ActiveRecord::Tasks::DatabaseTasks.load_seed

您可能需要查看db:structure:load任务以加载您的structure.sql文件,如果这是您的播种工作。

答案 1 :(得分:2)

如何将值保存到不存在的表中? rake db:migrate的工作是在数据库中创建表。

rake db:create创建数据库

rake db:migrate在数据库中创建表

rake db:seed根据种子数据

在表格中创建记录