下午好
我浏览了关于这个主题的其他问题,似乎没有人问过这个问题。我期待的不是这样!
无论如何 - 我有一个 PostgreSQL 数据库服务器在我的本地机器上运行,带有 MYAPP_DEVELOPMENT 数据库。我试过做一个
heroku db:push
但是一直报错:
Failed to connect to database:
Sequel::DatabaseConnectionError -> PGError: FATAL: role "brandon" does not exist
这显然与本地/heroku 共享数据库上的权限和用户有关,但老实说,我对这类东西不是很擅长。任何帮助,将不胜感激。我目前在 Heroku 的 slug 中包含“database.yml”文件,它包含我本地数据库的所有登录名/密码信息……因此我没有预料到这种错误。
谢谢!
** 编辑 ** 这是我的 database.yml 文件的内容(为清楚起见进行了编辑):
common: &common
adapter: postgresql
encoding: unicode
username: user
password: secret
test:
<<: *common
database: myapp_test
development:
<<: *common
database: myapp_development
production:
<<: *common
database: myapp_production
我认为它一定是 Heroku 设置方面的问题。请注意,在我的 database.yaml 文件中没有任何地方出现“brandon”。我不太确定它是从哪里拉出来的。我的数据库用户名不是那个(虽然那是我的名字哈哈)
最佳答案
此错误通常表示 username
尚未在您的 database.yml
中的适当环境下指定文件。
你的 database.yml
文件应类似于以下内容(我在本地使用 MySQL,因此使用 adapter
和 socket
参数):
common: &common
adapter: mysql2
encoding: utf8
reconnect: false
pool: 5
username: <your_username>
password: <your_password>
socket: /tmp/mysql.sock
development:
<<: *common
database: appname_dev
test:
...
staging:
...
production:
<<: *common
database: appname_prod
如果这不能解决您的问题,请检查以确保 Heroku 在正确的环境中运行:
-
heroku config --app <appname>
- 确保
RACK_ENV
设置为production
- 如果不是:
heroku config:add RACK_ENV=production --app <appname>
(如果您粘贴 database.yml
文件的内容会很有帮助。)
关于ruby-on-rails - Heroku 推送错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9048990/