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

dxdxdx · January 19, 2012 · Last by JeskTop replied at February 29, 2012 · 3426 hits

我在一台 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 的迁移,是执行什么指令的呢?

You need to Sign in before reply, if you don't have an account, please Sign up first.