我对 rails 应用程序及其各自的部署过程还不太熟悉。我计划在生产环境中的服务器上运行一个应用程序,但遇到了一些问题。该应用程序和 rake 在查询生产数据库时没有问题为了信息,但是每当应用程序或 rake 需要修改生产数据库时,就会出现问题。我的所有环境都在同一台服务器上,使用同一个用户。该服务器是正确配置的 MySQL 服务器。所有修改都成功完成,包括测试和开发环境。以下是发生的情况:
- Rake/Application 成功连接到生产数据库(通过 SQL 日志验证)
- 然后 Rake/Application 成功修改了信息(也验证了)
- (现在奇怪的事情发生了)rake/application 然后 ROLLBACK 它写入的信息(也经过验证)
- 如果我运行 rake,我会被告知服务器拒绝我的连接
我在其他两个环境中以相同的顺序执行了相同序列的命令,并且它们全部完成,并且成功提交。
- 数据库配置的条目相同,除了数据库名称(*-dev、*-test、*)之外。
- 所有数据库都存在
- 所有数据库权限均相同
- 所有必需的表都存在于所有三个数据库中
此外,我使用 gmysqlcc 成功连接到生产数据库,并使用与应用程序/rake 相同的凭据执行了应用程序或 rake 执行的精确命令。执行完美,没有缺陷或投诉。
答案1
通过修改 casein 的生产环境配置解决了这个问题。casein 尝试向我发送有关更新的邮件时遇到错误,Rails 回滚了提交。
如果 casein 能够提供更详细的错误信息,这个问题就会更早被发现。