在Heroku上使用Rails 4错误

时间:2015-06-23 20:21:51

标签: ruby-on-rails ruby database postgresql heroku

PG :: UndefinedTable:ERROR

我正在尝试使用postgres数据库在Heroku上部署Rails 4应用程序。我有预编译资产,但现在我运行时:

heroku run rake db:migrate

我收到此错误:

PG::UndefinedTable: ERROR:  relation "users" does not exist
: ALTER TABLE "users" ADD COLUMN "invited_by_user_id" integer
rake aborted!

通常建议的Stack Overflow解决方案:

我尝试使用以下方法重置数据库:

heroku pg:reset

数据库重置,但我仍然无法运行db:migrate。

我也尝试过:

heroku run db:setup

但我收到的错误是:

FATAL:  permission denied for database "postgres"
DETAIL:  User does not have CONNECT privilege.

我正在使用Rails 4.1.8,并看到this question表明我可能需要更新到rails 4.1.9或更高版本,但即使现在我正在使用Rails 4.2.2,也没有运气。

其他可能的相关信息:

使用

连接到heroku上的postgres数据库
heroku pg:psql

然后列出带有'\ l'的数据库,给我一长串具有神秘名称的数据库:

 Name      |     Owner      | Encoding |   Collate   |    Ctype    |         Access privileges         
----------------+----------------+----------+-------------+-------------+-----------------------------------
 d100o5a2gii5he | rdxtahlqikernc | UTF8     | en_US.UTF-8 | en_US.UTF-8 | rdxtahlqikernc=CTc/rdxtahlqikernc
 d102ehvv3umqam | ibuffadisyolrb | UTF8     | en_US.UTF-8 | en_US.UTF-8 | ibuffadisyolrb=CTc/ibuffadisyolrb
 d103n2kea6j5sa | tzzkfcinullytw | UTF8     | en_US.UTF-8 | en_US.UTF-8 | tzzkfcinullytw=CTc/tzzkfcinullytw
 d10597iiu347nk | eltovdzaxajtiu | UTF8     | en_US.UTF-8 | en_US.UTF-8 | eltovdzaxajtiu=CTc/eltovdzaxajtiu
 d108g0imdgn865 | pvzysfivyhcnaa | UTF8     | en_US.UTF-8 | en_US.UTF-8 | pvzysfivyhcnaa=CTc/pvzysfivyhcnaa
...

 dvs2j8tkv153m  | zjefhzzizozpwy | UTF8     | en_US.UTF-8 | en_US.UTF-8 | zjefhzzizozpwy=CTc/zjefhzzizozpwy
 postgres       | postgres       | UTF8     | en_US.UTF-8 | en_US.UTF-8 | postgres=CTc/postgres
 template0      | postgres       | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres                      +
        |                |          |             |             | postgres=CTc/postgres
 template1      | postgres       | UTF8     | en_US.UTF-8 | en_US.UTF-8 | postgres=CTc/postgres
(4787 rows)

我不确定如何解释它。

我是Rails的新手,但过去在Heroku上成功设置了几个数据库。遵循Heroku文档没有帮助,我不知道从哪里开始。

如何让db:migrate完成而不会出错?

注意:我在发布后解决了这个问题。请参阅下面的答案。

1 个答案:

答案 0 :(得分:1)

在发布这个问题后几分钟我发现了,我希望这可以帮助其他人。

解决方案是从Rails 4.1.8升级到Rails 4.2.2。

然后运行

np.dot(m^T, np.dot(C, m))

之前

heroku run rake db:schema:load

由于某些原因,我的项目不能用Rails 4.1.8运行。因此,在升级到Rails 4.2.2之后,我运行了架构加载和迁移命令而没有错误。