当我尝试使用
运行服务器时,我一直在尝试使用Heroku部署我的应用程序rails server -b $ IP -p $ PORT
它一直给我一个错误说 的ActiveRecord :: NoDatabaseError 致命:数据库“sale_development”不存在
这是我的database.yml
# SQLite version 3.x
# gem install sqlite3
#
# Ensure the SQLite 3 gem is defined in your Gemfile
# gem 'sqlite3'
#
default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
development:
<<: *default
database: sale_development
test:
<<: *default
database: sale_test
production:
<<: *default
database: sale_production
username: sale
password: <%= ENV['SALE_DATABASE_PASSWORD'] %>
我不明白为什么它说“sale_development”不存在 它应该存在,因为销售是我命名我的应用程序的名称
答案 0 :(得分:0)
尝试部署时会发生什么?这是您第一次部署应用程序吗?
当您运行rails server -b $IP -p $PORT
时,您要么绑定到错误的IP,这意味着该命令在本地运行,您还没有创建您的dev db。或者您使用该IP成功运行rails server命令,但是您未能在环境中包含-e标志,因此默认情况下您的应用程序将与开发环境一起运行。在这种情况下,将标志-e production
添加到您的命令中。
另外,我不知道你为什么要首先在heroku上运行rails server
命令,因为在部署过程中不需要它。
如果问题是您已成功部署但没有数据库运行:heroku run rake db:create
并且随后heroku run rake db:migrate
。