我正在尝试使用AWS Cloud9使用Postgres数据库启动并运行我的Rails环境,并在尝试运行 rails db:migrate
时遇到问题 .
最初我通过运行创建项目:
-
rails new app_name -d postgresql
-
bundle install
Bundler在找到 gem 'pg'
时遇到了问题所以我跑了:
-
sudo yum install postgresql-devel
-
sudo yum install postgresql-server
-
sudo postgresql initdb
-
sudo service postgresql start
之后服务器启动很好,我认为一切都很好,直到运行 rails db:migrate
返回错误:
PG::ConnectionBad: FATAL: role "ec2-user" does not exist
我不确定如何解决这个问题 .
有人建议我可能需要进入我的psql shell并改变或创建一个新角色,但我不确定如何改变 ec2-user
.
还有人建议我的 pg_hba.conf
文件可能需要进行一些更改 . 我有该文件的路径,但不知道如何编辑它,或者这是我真正想做的事情 .
有什么建议?我在下面包括我的 database.yml
:
default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
development:
<<: *default
database: my_app_development
test:
<<: *default
database: my_app_test
production:
<<: *default
database: my_app_production
username: my_app
password: <%= ENV['MY_APP_DATABASE_PASSWORD'] %>
1 回答
psql
的每个用户还需要一个与其名称匹配的相应数据库 .在bash命令行:
以上应该允许您的用户访问
psql
,但它赢得了't let rails make migrations yet. You' ll必须首先执行以下操作:我很快把它放在一起,所以如果你遇到任何问题请告诉我 .
如果您的
config/database.yml
正在为您的bash用户使用其他登录用户,则您还应该为该用户重复上述所有步骤 .最后,虽然您使用的是Cloud9,但这只是一个简单的Rails / Postgres问题,而不是AWS问题 .