【发布时间】:2015-01-06 20:53:47
【问题描述】:
只是作为序言,我已经阅读了this question 和其他人,但没有任何答案真正提到了在 rake 任务中执行此操作的方法。
我想做一个有点像这样的设置脚本:
if database_exists?
sh 'rake db:migrate'
else
sh 'rake db:setup'
end
我没有写database_exists?,但是我怎么知道用户系统是否已经创建了这个数据库?
我不想每次都运行rake db:setup,这会删除用户数据库。
我想我每次都可以运行rake db:create && rake db:migrate,但是用户除了现在是db:setup 进程的一部分的rake 任务之外还需要运行rake db:seed。
【问题讨论】:
-
这是一个毫无意义的测试。只需使用
rake db:setup。如果数据库已经存在,它不会重新创建数据库。创建数据库并运行迁移后,您可以根据需要多次运行它,而不会产生负面影响。 -
@meagar- db:setup 运行
db:create, db:schema:load, db:seed- 这个种子不是每次运行时都会运行吗?
标签: ruby-on-rails ruby rake