当我使用本地mysql服务器在本地运行rails服务器时,我的端点工作正常,并且正在插入和更新到mysql数据库,所有内容都很漂亮。
然而,当我部署到AWS OpsWorks时,应用程序已部署,我可以查看/public
文件夹中的内容,但我的所有操作都没有“#39}工作,我不太确定如何调试它。
当我检查日志时,看到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
..但没有关于实际创建表或执行迁移的事情。
关于我的实例和应用...
我有一个EC2实例,其上有Rails和MySQL层。
我使用的是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
,因为这会让你的ec2失控。
任何帮助或调试方向都会有很大帮助。谢谢!
答案 0 :(得分:1)
您需要通过自定义JSON发送数据库详细信息。这是因为APP没有自动从配置中获取连接详细信息。即使你把它添加到代码库中,它也会被配方写下来。
{
"deploy":{
"app_name":{
"database":{
"password":"",
"adapter":"mysql2",
"username":"",
"database":"",
"host":"localhost"
}
}
}
}
您需要运行创建数据库等的正常任务。这是您应该在安装应用程序时单独执行的操作。一个很好的选择是使用部署挂钩:opsworks hooks