我最近通過Heroku添加到Rails應用程序。我能夠應用克隆使用我的本地機器:添加到Heroku上的Rails應用程序。如何在本地環境中設置數據庫?
heroku git:clone -a appname
不過,我有正在運行的本地測試和相關的不具有本地數據庫等任務的問題。生產環境使用Postgres,開發環境使用sqlite3。獲取本地數據庫設置的最佳方式是什麼?
我最近通過Heroku添加到Rails應用程序。我能夠應用克隆使用我的本地機器:添加到Heroku上的Rails應用程序。如何在本地環境中設置數據庫?
heroku git:clone -a appname
不過,我有正在運行的本地測試和相關的不具有本地數據庫等任務的問題。生產環境使用Postgres,開發環境使用sqlite3。獲取本地數據庫設置的最佳方式是什麼?
只需從Heroku中提取生產數據庫即可。運行一旦你有heroku_toolbelt,你可以訪問應用程序在Heroku如下:
heroku pg:pull DATABASE_URL app_development --app app_name_on_heroku_here
這將創建一個新的數據庫在本地命名爲「app_development」,所以其重命名爲您的應用程序。請參閱config/database.yml
以獲取您的開發數據庫名稱。
您將需要設置開發所需的數據庫。這是可以做到用內置的rake db
任務:
rake db:create
rake db:migrate
這要看你的本地數據庫中創建並遷移到最新的遷移。
當你從Heroku的已成功克隆Rails項目和生產數據庫是PostgreSQL的是從本地數據庫SQLite的不同,你應該從你的本地項目更新一些文件,我已經安裝了
1. remove or comment "gem pg" and add gem 'sqlite3' and run bundle install
2. Make changes in your database.yml file
default: &default
adapter: sqlite3
pool: 5
timeout: 5000
development:
<<: *default
database: db/development.sqlite3
3 run rake db:create
4 run rake db:migrate
5 if you have data in seed file run rake db:seed
的工具區,我可以訪問應用程序,但我在運行時遇到一些權限錯誤。 – jcconnell
確保您已在設置下的heroku應用中列爲協作者。另外,使用postgres作爲本地數據庫,而不是sqlite以避免任何兼容性問題。通過使用上面的pull命令,只要你安裝了它並且它正在運行,它就會使用postgres。 – bkunzi01
感謝您的幫助。在我得到用戶信息爲Postgres工作後,這最終結束了工作。 – jcconnell