我使用mod_rails和nginx在Capistrano上部署了一个Ruby on Rails应用程序,它运行得很好,但我有一个令人困惑的问题。
当我在服务器上运行以下命令时:
SHOW TABLES IN application_production;
MySQL返回:
Empty set (0.00 sec)
我知道信息正在写入数据库,因为我输入了正在保存的数据。我已经尝试重新启动Rails应用程序和整个服务器,以及从其他计算机访问该站点,它运行正常,但查询仍然返回一个空集。我完全难过了。
任何人都知道发生了什么事吗?谢谢!
答案 0 :(得分:2)
您的database.yml
文件是否已针对生产环境正确设置?
答案 1 :(得分:0)
当然,在我发布问题后10分钟,我想出来了:
在部署之前,我没有将更新的database.yml文件提交给Mercurial,因此当它下载最新的变更集时,使用旧的database.yml(使用默认的生产数据库)。因此,它在我的项目文件夹中使用SQLite数据库而不是MySQL。
愚蠢的错误!道德:总是确保在部署之前提交。