我创建了我的第一个Rails应用程序,它有一个免费的:dev:数据库。我花了50美元买了一个Crane数据库,然后删除了我的开发数据库。
运行heroku pg
命令:
=== HEROKU_POSTGRESQL_NAVY_URL
Plan: Crane
Status: available
Data Size: 5.9 MB
Tables: 0
PG Version: 9.1.6
Connections: 3
Fork/Follow: Available
Created: 2012-12-17 21:46 UTC
Maintenance: not required
什么是奇怪的是,如果我运行heroku run rake db:migrate
它运行良好,但heroku pg
仍然显示0表计数和数据在应用程序本身显示旧数据是在我的:dev:数据库。
有什么建议吗?我怎么能告诉Heroku, Please use this database as the default from now on?
另外,如果heroku pg
只显示1个数据库,并且该数据库有0个表,我的应用程序在哪里获得它当前显示的数据?
基本上,我必须推广我的Crane数据库作为Rails应用程序将使用的默认数据库。Heroku上的Rails应用使用名为DATABASE_URL
的连接字符串。
因此,首先,我运行这个命令来获取我需要提升的数据库的名称:
heroku pg
=== HEROKU_POSTGRESQL_NAVY_URL
Plan: Crane
Status: available
Data Size: 5.9 MB
Tables: 0
PG Version: 9.1.6
Connections: 3
Fork/Follow: Available
Created: 2012-12-17 21:46 UTC
Maintenance: not required
然后我运行promote命令:
heroku pg:promote HEROKU_POSTGRESQL_NAVY_URL
最后,由于现在这是默认的数据库,我可以对我的Crane数据库运行迁移:
heroku run rake db:migrate