【问题标题】:Rails application deployed and working, but MySQL database appears emptyRails 应用程序已部署并正常工作,但 MySQL 数据库显示为空
【发布时间】:2009-07-24 07:33:48
【问题描述】:

我在 Capistrano 上使用 mod_rails 和 nginx 部署了一个 Ruby on Rails 应用程序,它运行良好,但我遇到了一个莫名其妙的问题。

当我在服务器上运行以下命令时:

SHOW TABLES IN application_production;

MySQL 返回:

Empty set (0.00 sec)

我知道正在将信息写入数据库,因为我输入了正在保存的数据。我尝试重新启动 Rails 应用程序和整个服务器,以及从其他计算机访问该站点,它运行良好,但查询仍然返回一个空集。我完全被难住了。

有人知道发生了什么吗?谢谢!

【问题讨论】:

    标签: mysql ruby-on-rails deployment mod-rails


    【解决方案1】:

    您的database.yml 文件是否为生产环境正确设置?

    【讨论】:

      【解决方案2】:

      当然,在我发布问题 10 分钟后我就明白了:

      在部署之前,我没有将更新的 database.yml 文件提交给 Mercurial,因此当它拉下最新的变更集时,会使用旧的 database.yml(带有默认生产数据库)。因此,它在我的项目文件夹中使用 SQLite 数据库而不是 MySQL。

      愚蠢的错误!道德:始终确保在部署之前提交。

      【讨论】:

      • 我没有将 database.yml 文件存储在我的存储库中。相反,我将其 SFTP 到 shared/config 目录,然后让 Capistrano 从 Rails 应用程序中创建指向它的符号链接。
      • 将它放在存储库中是否存在任何安全风险?我们只有两个人在做这个项目,而且我们都有密码,所以这似乎不是一个问题。我错过了什么吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 2011-07-18
      • 1970-01-01
      • 2016-11-30
      • 2023-03-23
      相关资源
      最近更新 更多