我有一段时间在 heroku 实例上获取 Postgres 数据库以允许我运行数据库迁移。
我对 Heroku 也很陌生,所以如果这是一个愚蠢的问题,请提前道歉:)
所以我的应用程序在 Heroku 上,并且可以成功连接到它的数据库——它不能做任何事情,因为表没有设置。我在代码中的连接块如下所示:
if ENV['DATABASE_URL']
ActiveRecord::Base.establish_connection(ENV['DATABASE_URL'])
else
ActiveRecord::Base.establish_connection(dbconfig['development'])
end
环境变量由 Heroku 在部署时设置 - 这也有效。如果我在使用 Pry 或其他东西初始化所有内容后加入,则连接效果很好。dbconfig 哈希是从 my 填充的,db/config.yml
它在本地运行良好。
我可以rake db:migrate
在我的本地系统上很好。但是,尝试这个通过heroku run rake db:migrate
给我一个错误转储,开头是:
rake aborted!
could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
在这里我能想到的唯一一件奇怪的事情是我正在使用一个名为独立迁移的 gem(在 中声明Gemfile
),它应该允许我在不引入 Rails 的其余部分的情况下执行此操作。
那么,我的问题是,为什么我的迁移没有运行?