当我尝试跑步时:
heroku run rake db:drop db:create db:migrate
我收到错误:
Running rake db:drop attached to terminal... up, run.5
Couldn't drop adsfsadfas : #<ActiveRecord::StatementInvalid: PGError: ERROR: must be owner of database adsfsadfas
: DROP DATABASE IF EXISTS "adsfsadfas">
我在Heroku Cedar堆栈上。我可以在Heroku上删除数据库吗?
谢谢!
约翰
答案 0 :(得分:49)
不支持rake db:reset任务。 Heroku应用程序无权删除和创建数据库。改为使用
heroku pg:reset
命令。
答案 1 :(得分:13)
heroku上不允许使用直接破坏性命令( drop 和 create )。但是,如果您可以放弃所有数据,则可以使用pg:reset
重置数据库。
heroku pg:reset DATABASE_URL
其他所有更改都应使用db:migrate
完成。这确保了数据库状态的一致性。
如果您的迁移不再在完整堆栈中运行,则可以使用db:schema:load
。这将直接从 schema.rb 加载架构。但请注意,如果create_table
使用参数force: true
或force: :cascade
,这也可能具有破坏性。
heroku run rake db:schema:load