部署 在 CentOS 服务器上做 rake db:migrate 非常非常慢,甚至崩溃

dxdxdx · 2012年01月19日 · 最后由 JeskTop 回复于 2012年02月29日 · 3425 次阅读

我在一台 CentOS 5.7 的机器上部署一个 rails 应用,数据库用的是 postgresql-8.1.23, rails 3.1.3, ruby 1.9.2, 怀疑是 rake 的问题,因为我想查看 rake 的版本,rake -v 时系统已经崩溃了. 靠!系统刚刚崩溃

哪位同学有没有遇到同样的灾难?指点一下 谢谢

补充一下 rake 的版本是 0.9.2.2

崩溃?具体的命令行输出是?

PS: 跟 Rails 相关的命令大多都反应迟钝(遇上单核的机器就更伤不起了),习惯就好 = =

#2 楼 @iwinux 没有命令行输出,就一直挂着,按任何键都没有反应

找到原因了,rake db:migrate 默认会给所有的环境做数据迁移,test 环境用的是 sqlite3,而我没有在服务器上安装 sqlite3,有点诡异的是我用 ps aux | grep rake 时看到无数的 rake 程序在跑,这就导致了服务器宕机了 rake -v 会运行测试,而 rake -V 才会输出 rake 的版本号,所以我 rake -v 时会加速服务器的宕机

rake db:migrate 应该只执行 development 的迁移吧?难道 rails 3 里边改变了?

执行 rake 可以加上 --trace 选项跟踪一下:

rake db:migrate --trace

数据库迁移时,也可以把 ActiveRecord 的 logger 设置为 Logger.new(STDOUT) 看看数据库的日志,开发时比较有用。

部署不是应该用 rake db:schema:load 么?

#5 楼 @zhangyuan 你好。我想问一下,那如果在 Production 的迁移,是执行什么指令的呢?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号