我已经获得了使用相当奇怪的设置访问Heroku应用程序的权限。它有一个数据库但是当我运行heroku config
时,我得到了不同的DATABASE_URL和HEROKU_POSTGRESQL_BRONZE_URL。
当我运行heroku pg:info
时,我得到以下结果:
=== HEROKU_POSTGRESQL_BRONZE_URL
Plan: Dev
Status: available
Connections: 1
PG Version: 9.2.4
Created: 2013-09-05 11:02 UTC
Data Size: 6.5 MB
Tables: 0
Rows: 0/10000 (In compliance)
Fork/Follow: Unsupported
我意识到我的数据库位于DATABASE_URL,但我无法通过heroku run console
访问该数据库。所有heroku pg
命令都会失败并显示以下消息:
! Unknown database: DATABASE_URL. Valid options are: HEROKU_POSTGRESQL_BRONZE_URL
如果我运行heroku pg HEROKU_POSTGRESQL_BRONZE_URL
,我可以从上面访问空数据库。
由于我在运行迁移时遇到一些问题,我认为我的数据库可能已满,我想查看它。我有什么想法可以做到吗?
运行heroku run rake db:migrate
后出现错误:
PG::Error: ERROR: permission denied for relation schema_migrations
: INSERT INTO "schema_migrations" ("version") VALUES ('20130918114202')
有关设置的更多信息:
rails 3.2.12
RAILS_ENV:暂存(我无法访问制作,但我知道这是“dev”服务器,而且还有真正的“暂存”,这个应用程序是分叉的。)
答案 0 :(得分:2)
我有同样的问题,我修复了它:
从数据库中保留备份并重新恢复,以下是步骤:
heroku pg:info <-- to get the Database Name
heroku addons:add pgbackups <-- make sure you have the addons for backup
heroku pgbackups:capture <-- Capture the backup
heroku pgbackups <-- check your backups and make sure its there
heroku pg:reset DATABASE_NAME <-- Reset your database don't worry we have a backup, replace DATABASE_NAME with database name
heroku pgbackups:restore DATABASE_NAME b001 <-- Restore the backup again, replace DATABASE_NAME with database name and b001 with your Database version you can see this version number in heroku pgbackups step
heroku run rake db:migrate <-- Now you can run your migration and Operate in normal mode.
答案 1 :(得分:1)
这似乎是Heroku方面的一些麻烦。你试过和他们一起提交票吗?我一直很幸运得到他们的支持。
答案 2 :(得分:0)
我刚收到客户的最新消息。之前,由于数据库中的数据,我无法删除数据库。最后,我们决定删除数据库,因为可以添加数据(它的开发服务器,如果我们丢失一些虚拟数据并不重要)。
我没有找到上述问题的解决方案,但推广HEROKU_POSTGRESQL_BRONZE_URL并从备份恢复解决了无法访问数据库的问题。