当我使用本地 mysql 服务器在本地运行我的 rails 服务器时,我的端点工作正常,并且正在将内容插入和更新到 mysql 数据库,一切都很美好。
然而,当我部署到 AWS OpsWorks 时,应用程序已部署,我能够看到 /public
文件夹中的内容,但我的所有操作都不起作用,我也没有非常确定如何调试它。
当我检查日志时,看到 bundle install
被调用,甚至随后...
[2014-07-13T14:37:34+00:00] INFO: No database adapter specified for bgs_api, guessing
[2014-07-13T14:37:35+00:00] INFO: Looks like bgs_api uses mysql2 in its Gemfile
.. 但与表的实际创建或迁移的执行无关。
关于我的实例和应用...
我有一个同时具有 Rails 和 MySQL 层的 EC2 实例。
我正在使用 database.yml
文件,但我不确定这是否意味着我可以在部署应用程序时忽略放入自定义 JSON。这就是我目前正在做的事情。
这是我的database.yml
文件
development:
adapter: mysql2
encoding: utf8
reconnect: true
database: xyz #name for local database defined by me
username: abc #username for local database user defined by me
password: 123 #password for local database user defined by me
pool: 5
host: localhost
production:
adapter: mysql2
encoding: utf8
reconnect: true
database: xyz #name for opsworks database defined by me
username: root #username for opsworks database defined by opsworks
password: abc #password for opsworks database defined by opsworks
pool: 5
host: localhost
我不确定的一件事是生产主机值......我想它会是 localhost
因为这个 get 在 ec2 insatnce 上运行。
调试的任何帮助或指导都会有很大帮助。谢谢!
最佳答案
您需要通过自定义 JSON 发送数据库详细信息。这是因为 APP 没有自动从配置中获取连接详细信息。即使您确实将它添加到代码库中,它也会被配方覆盖。
{
"deploy":{
"app_name":{
"database":{
"password":"",
"adapter":"mysql2",
"username":"",
"database":"",
"host":"localhost"
}
}
}
}
您需要运行创建数据库等的正常任务。这是您应该在安装应用程序时单独执行的操作。一个不错的选择是使用部署 Hook :opsworks hooks
关于mysql - OpsWorks 已部署,但我的所有操作均无效。我的 database.yml 文件搞砸了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24727728/