0

我已经获得了使用相当奇怪的设置访问 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')

有关设置的更多信息:

导轨 3.2.12

RAILS_ENV:暂存(我无权访问生产,但我知道这是“开发”服务器,并且还有真正的“暂存”,该应用程序是从中分叉的)。

4

3 回答 3

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. 
于 2013-10-22T14:31:07.637 回答
1

这在 Heroku 方面似乎有些古怪。您是否尝试过向他们提交票证?在他们的支持下,我一直很幸运。

于 2013-09-27T03:09:05.437 回答
0

我刚从我的客户那里得到更新。以前,我无法删除数据库,因为其中有数据。最后,我们决定删除数据库,因为可以将数据添加回来(它是开发服务器,如果我们丢失一些虚拟数据也没关系)。

我没有找到解决上述问题的方法,但是推广 HEROKU_POSTGRESQL_BRONZE_URL 并从备份恢复解决了无法访问数据库的问题。

于 2013-09-27T11:08:15.217 回答