1
我試圖通過以下this tutorial將我的應用程序部署到Elastic Beanstalk。部署的rails應用程序彈性beanstalk無法連接到RDS
如果我使用splite3
,該應用可以正常工作,但我無法將應用連接到RDS。
我在Gemfile中添加了group :production do gem 'mysql2' end
,此代碼添加到config/database.yml
。
production:
adapter: mysql2
encoding: utf8
database: <%= ENV['RDS_DB_NAME'] %>
username: <%= ENV['RDS_USERNAME'] %>
password: <%= ENV['RDS_PASSWORD'] %>
host: <%= ENV['RDS_HOSTNAME'] %>
port: <%= ENV['RDS_PORT'] %>
我在Elastic Beanstalk console中添加了RDS。
但production.log
顯示錯誤,表示數據庫連接失敗。
-------------------------------------
/var/app/support/logs/production.log
-------------------------------------
I, [2014-02-09T16:01:56.520967 #29379] INFO -- : Started GET "/" for xxx.xxx.xxx.xxx at 2014-02-09 16:01:56 +0000
I, [2014-02-09T16:01:56.620738 #29379] INFO -- : Processing by PostsController#index as HTML
E, [2014-02-09T16:01:56.629835 #29379] ERROR -- : Mysql2::Error: Table 'ebdb.posts' doesn't exist: SELECT `posts`.* FROM `posts`
I, [2014-02-09T16:01:56.630802 #29379] INFO -- : Rendered posts/index.html.erb within layouts/application (4.3ms)
I, [2014-02-09T16:01:56.631068 #29379] INFO -- : Completed 500 Internal Server Error in 10ms
F, [2014-02-09T16:01:56.633962 #29379] FATAL -- :
ActionView::Template::Error (Mysql2::Error: Table 'ebdb.posts' doesn't exist: SELECT `posts`.* FROM `posts`):
eb status
表明是這樣的。
URL : myAppURL
Status : Ready
Health : Green
RDS Database: AWSEBRDSDatabase | myDatabaseURL:port
也許我錯過了一些非常基本的。我該怎麼辦才能解決這個問題?
你連接到RDS爲您的應用程序會在啓動時崩潰,如果你不能。它只是沒有找到表格。你能連接到RDS並運行「use yourdatabasename;」和「展示桌子」;並看看?也許只是在生產數據庫上缺少遷移? –
您是否正在使用由EB流程創建的RDS實例,或者您是否將EB應用程序連接到已有的RDS數據庫? –
嘿!我有同樣的問題...我已經設法連接到我的RDS數據庫與SQL的Sequel客戶端,並觀察到數據庫'ebdb'存在,但不包含任何表格或內容... ...我相信這可能也是這種情況,所以它必須是rails遷移由於某種原因無法正常運行的問題......任何想法如何檢查它們是否正在運行,手動運行它們,或者查看db_migrate命令的輸出已完成在彈性豆莖環境中? – Robertibiris