heroku给出错误ActiveRecord :: AdapterNotSpecified:未配置“生产”数据库。可用:[“开发”,“测试”]

时间:2018-06-24 00:24:47

标签: mysql ruby-on-rails ruby heroku heroku-cli

我的数据库.yml

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: organic_tomatoes_development
  pool: 5
  username: root
  password: password

test:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: organic_tomatoes_test
  pool: 5
  username: root
  password: password

我在heroku上部署了我的网站。 当我运行heroku run rake db:migrate时 它给出了一个错误

ActiveRecord::AdapterNotSpecified: 'production' database is not configured. Available: ["development", "test"]

如何解决此错误?

4 个答案:

答案 0 :(得分:1)

根据共享的描述,您仅指定了开发和测试环境,还需要添加生产环境设置

但是除此之外,您还需要添加ClearDB作为使用mysql db的附件。

单击“显示配置变量”,然后复制CLEARDB_DATABASE_URL值。

mysql://xxxxx@xxxx.cleardb.net/xxxxx?reconnect = true。

@符号后面直到/的所有内容均为DB_HOST

/直到之后的一切?是DB_DATABASE

//直到:之后的字符串是DB_USERNAME

:和@之间的字符串是DB_PASSWORD

   development:
     adapter: mysql2
     encoding: utf8
     reconnect: false
     database: organic_tomatoes_development
     pool: 5
     username: root
     password: password

   test:
    adapter: mysql2
    encoding: utf8
    reconnect: false
    database: organic_tomatoes_test
    pool: 5
    username: root
    password: password

   production:
     adapter: mysql2
     encoding: utf8
     username: xxxx
     password: xxxx
    database: ENV["CLEARDB_DATABASE_URL"]
    pool: 5

答案 1 :(得分:0)

在您的数据库中创建生产条目。yml

production::
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: organic_tomatoes_production
  pool: 5
  username: root
  password: password

答案 2 :(得分:0)

production:
    adapter: mysql2
    encoding: utf8
    reconnect: false
    database: organic_tomatoes_production
    pool: 5

你可以试试吗?

答案 3 :(得分:0)

今天早上我遇到了这个问题,解决方法是在运行命令之前设置RAILS_ENV变量'

RAILS_ENV=development heroku local