首次设置Heroku数据库

时间:2014-01-15 14:39:44

标签: ruby-on-rails database postgresql heroku

我正在使用postgresql并且一直在我的本地开发环境下运行。我将我的应用程序部署到Heroku,现在我需要设置heroku来使用数据库,就像我在本地一样。

在本地,我会运行这个:

rake db:create
rake db:migrate

在heroku上,我尝试了同样的事情:

heroku run rake db:create

然而,这会返回此错误:

FATAL:  permission denied for database "postgres"
DETAIL:  User does not have CONNECT privilege.

Couldn't create database for {"adapter"=>"postgresql", "username"=>"stegjyxfak", "password"=>"wB-Yfh450945jI5UrnFjxdwZ_o4N5", "port"=>5432, "database"=>"d64phj348vgdg5hm", "host"=>"ec2-107-20-191-205.compute-1.amazonaws.com"}

我应该运行什么来设置我的heroku数据库?我正在使用Rails 4.0,如果它是相对的。

2 个答案:

答案 0 :(得分:13)

您应该使用migrate代替create

heroku run rake db:migrate

https://devcenter.heroku.com/articles/getting-started-with-rails4#deploy-your-application-to-heroku

答案 1 :(得分:1)

heroku上不允许使用直接破坏性命令( drop create )。但是,如果您可以放弃所有数据,则可以使用pg:reset重置数据库。

其他所有更改都应使用db:migrate完成。如果您的迁移不再在完整堆栈中运行,您也可以使用db:schema:load但请注意,如果create_table设置了force: trueforce: :cascade,这可能具有破坏性。< / p>