Rails:ActiveRecord :: NoDatabaseError致命:数据库“sale_development”不存在

时间:2017-07-14 18:07:24

标签: ruby-on-rails ruby heroku sqlite

当我尝试使用

运行服务器时,我一直在尝试使用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”不存在 它应该存在,因为销售是我命名我的应用程序的名称

1 个答案:

答案 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