Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Postgres db不在Heroku上工作_Ruby On Rails_Ruby_Postgresql_Sqlite_Heroku - Fatal编程技术网

Ruby on rails Postgres db不在Heroku上工作

Ruby on rails Postgres db不在Heroku上工作,ruby-on-rails,ruby,postgresql,sqlite,heroku,Ruby On Rails,Ruby,Postgresql,Sqlite,Heroku,我已经花了好几个小时弄清楚如何启动和运行我的数据库。我创建了一个新的rails应用程序,并希望将其部署到heroku。我按照heroku的指示从sqlite3->postgresql切换,但它就是不起作用 这在my database.yml文件中: default: &default adapter: postgresql pool: 5 timeout: 5000 development: <<: *default database: myapp_de

我已经花了好几个小时弄清楚如何启动和运行我的数据库。我创建了一个新的rails应用程序,并希望将其部署到heroku。我按照heroku的指示从sqlite3->postgresql切换,但它就是不起作用

这在my database.yml文件中:

default: &default
  adapter: postgresql
  pool: 5
  timeout: 5000

development:
  <<: *default
  database: myapp_development

test:
  <<: *default
  database: myapp_test

production:
  <<: *default
  database: myapp_production
  url: <%= ENV['DATABASE_URL'] %>
有人知道如何解决这个问题吗?我一点线索也没有了


谢谢

您不能使用db:create在Heroku上创建数据库。您也不能删除它。您的数据库是在添加诸如Heroku Postgres之类的附加组件时创建的。您只能迁移和种子。如果您想重新开始,可以使用pg:reset而不是drop-And-create

因此,正确的顺序应该是:

添加Heroku插件,如Heroku Postgres。加载项位于此处:。 rake数据库:迁移 rake-db:种子 如果你想重新开始

rake pg:重置 rake数据库:迁移 rake-db:种子 来自Heroku文档:

分配给数据库的PostgreSQL用户没有创建或删除数据库的权限。要删除并重新创建数据库,请使用pg:reset


您不能使用db:create在Heroku上创建数据库。您也不能删除它。您的数据库是在添加诸如Heroku Postgres之类的附加组件时创建的。您只能迁移和种子。如果您想重新开始,可以使用pg:reset而不是drop-And-create

因此,正确的顺序应该是:

添加Heroku插件,如Heroku Postgres。加载项位于此处:。 rake数据库:迁移 rake-db:种子 如果你想重新开始

rake pg:重置 rake数据库:迁移 rake-db:种子 来自Heroku文档:

分配给数据库的PostgreSQL用户没有创建或删除数据库的权限。要删除并重新创建数据库,请使用pg:reset


默认情况下,您不需要在heroku上创建db。 只需运行heroku运行railsdb:migrate,其余内容将由heroku自己处理

对于生产环境,还应将database.yml更改为以下内容

另外,默认情况下,rails应用程序会被分配一个Postgres插件。 您可以通过在控制台中运行命令heroku addons来检查这一点

来源-


默认情况下,您不需要在heroku上创建db。 只需运行heroku运行railsdb:migrate,其余内容将由heroku自己处理

对于生产环境,还应将database.yml更改为以下内容

另外,默认情况下,rails应用程序会被分配一个Postgres插件。 您可以通过在控制台中运行命令heroku addons来检查这一点

来源-


根据给定的stacktrace,似乎您正试图在heroku上创建一个数据库,而这反过来又给了您权限被拒绝的错误

首先,你不需要跑步

heroku run rake db:create
而是跑

heroku run rake db:migrate
它应该迁移停止的迁移

要检查迁移的当前状态,请运行以下命令:

heroku run rake db:migrate:status
heroku run rake db:seed
你提到的另一点:

->我无法在数据库中创建或设置任何数据种子 如上所述,您不能像heroku为您创建数据库那样创建数据库。 对于数据库中的种子设定数据,请运行以下命令:

heroku run rake db:migrate:status
heroku run rake db:seed

根据给定的stacktrace,似乎您正试图在heroku上创建一个数据库,而这反过来又给了您权限被拒绝的错误

首先,你不需要跑步

heroku run rake db:create
而是跑

heroku run rake db:migrate
它应该迁移停止的迁移

要检查迁移的当前状态,请运行以下命令:

heroku run rake db:migrate:status
heroku run rake db:seed
你提到的另一点:

->我无法在数据库中创建或设置任何数据种子 如上所述,您不能像heroku为您创建数据库那样创建数据库。 对于数据库中的种子设定数据,请运行以下命令:

heroku run rake db:migrate:status
heroku run rake db:seed

在Heroku仪表板中。资源->插件。你添加了Heroku Postgres::Database插件了吗?是的,我添加了Postgres插件!你是否选择了一个免费的网络动态,并激活了它?是的。我通过在heroku上重新添加Postgres插件找到了解决方案。现在它工作得很好。谢谢你的帮助!在Heroku仪表板中。资源->插件。你添加了Heroku Postgres::Database插件了吗?是的,我添加了Postgres插件!你是否选择了一个免费的网络动态,并激活了它?是的。我通过在heroku上重新添加Postgres插件找到了解决方案。现在它工作得很好。谢谢你的帮助!谢谢,我重新添加了postgres插件,现在它运行良好!干杯谢谢,我重新添加了postgres插件,现在它工作正常了!干杯