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完成而不会出错?
注意:我在发布后解决了这个问题。请参阅下面的答案。
答案 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之后,我运行了架构加载和迁移命令而没有错误。