我有 rake 任务来更新我的数据库,并且该任务是由外部挂钩触发的。(svn钩子)。
rake 任务将插入新记录并更新现有记录的某些列。没有数据库架构更改。
我还应该提到这是在生产中。
- rake 任务运行时是否必须停止服务器?
- 如果我停止服务器,如何在访问者查看网站时显示“更新”消息?
- rake 任务完成后是否必须重新启动服务器?
我有 rake 任务来更新我的数据库,并且该任务是由外部挂钩触发的。(svn钩子)。
rake 任务将插入新记录并更新现有记录的某些列。没有数据库架构更改。
我还应该提到这是在生产中。
您不需要为 rake:db:migrate rake:db:reset 或 rake:db:create 重新启动 rails 服务器。
rake 任务运行时是否必须停止服务器?
这取决于...如果您的迁移破坏了以前版本的 rails 站点(例如字段重命名或表删除),那么最好显示某种“我们正在更新我们的网站,请在两分钟后返回”页面或者只是关闭rails服务器。
问问自己,您以前的代码版本是否可以与新的数据库模式一起使用?如果是,那么您不必停止服务器或显示“我们正在更新”页面。如果不是,那么您应该考虑在迁移期间停止服务器。
rake 任务完成后是否必须重新启动服务器?
不,如果您只是在数据库表中添加/删除/更改一些记录。是的,如果您要更改数据库架构。
关于重定向,如果您决定不重新启动服务器并且迁移\播种需要很长时间,那么只需更改
// config/routes.rb
root :to => 'controller#action'
到一些将显示适当消息的新控制器(更改它将立即生效,无需重新启动)