因此,我在cloud9 IDE帐户上根据投票结果最高的评论:Cloud9 postgres的指示设置了一个PostgreSQL数据库。
这就是database.yml文件的外观:
default: &default
adapter: postgresql
encoding: unicode
pool: 5
username: <%= ENV['USERNAME'] %>
password: <%= ENV['PASSWORD'] %>
host: <%= ENV['IP'] %>
development:
<<: *default
database: sample_app_development
test:
<<: *default
database: sample_app_test
production:
<<: *default
database: sample_app_production
然后我创建了一个用户模型,迁移了它,并重新加载了我的应用程序。但是,当我在cloud9命令行上使用以下命令将应用程序加载到本地服务器上时:
rails server -b $IP -p $PORT
,会收到以下错误消息:fe_sendauth:no password supplied error。我不知道出了什么问题,因为我已经创建了一个超级用户,并在database.yml文件中包含了密码。我发现的唯一问题是,可以通过将pg_hba.conf文件更改为信任本地服务器来修复此错误。不过,我认为在Cloud9 IDE中创建超级用户和密码的整个目的是,您不必这样做。另外,Cloud9不允许您访问pg_hba.conf文件。 最佳答案
不需要更改pg_hba.conf文件。
只需在终端中键入以下命令:
$ source ~/.profile
$ rake db:create
$ rake db:migrate
然后正常重启服务器。
我知道您已经在前面提到的指令的开头运行了source ~/.profile命令(我以前使用过这个答案,并且遇到过同样的问题),但是出于某种神秘的原因,Cloud9环境(我从来没有在我的Mac机上做过这些操作)要求在完成安装后再次手动为“.profile”文件提供源代码在这些指令中指定(云9只是决定有时会很奇怪-就像所有的机器一样。。。啊!)。第二个命令使用pg gem和database.yml文件中的所有配置在开发环境中创建新的pg数据库。
可能不需要最后的“migrate”命令,但出于神秘的原因,在运行“rake db:migrate”之后,我也修复了数据库问题(如果我是正确的,它只会更新您的数据库,以便能够使用您的模型或您可能添加到开发环境中的任何新虚拟数据)。
希望这有帮助。