我在一台 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 么?
rake db:schema:load
#5 楼 @zhangyuan 你好。我想问一下,那如果在 Production 的迁移,是执行什么指令的呢?