每次播种时我都会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命令。我的迁移当前需要在数据/表位于数据库之后运行。
答案 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
根据种子数据