Yur*_*uri 7 postgresql ruby-on-rails heroku ruby-on-rails-3
我在我的本地env中添加了一个表schools
,它在dev中工作正常.实际上它甚至可以在分段(heroku)中正常工作,但在生产中失败了很多时间并且rake db:migrate
抛出错误.
我甚至无法预编译assest(使用RAILS_ENV = production),访问我的应用程序的任何部分,包括生产中的rails控制台(heroku).一切都在抛出错误.我已经失去了几个小时,但我觉得没有更接近我们的想法.(注意:我有'"..."'
对table_name的引用,我认为这是问题的一部分)
我从rails 3.1.0转到3.1.3,这可能与它有关.
PGError: ERROR: relation "schools" does not exist
LINE 4: WHERE a.attrelid = '"schools"'::regclass
^
: SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
FROM pg_attribute a LEFT JOIN pg_attrdef d
ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = '"schools"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
Run Code Online (Sandbox Code Playgroud)
我对此感到迷茫.我在这里阅读了关于这个主题的其他几个问题,但没有解决方案.谢谢您的帮助.非常感谢任何见解.
更新 ------------------------------------------------- -----
我刚刚在heroku上创建了一个全新的应用程序并运行rake db:migrate
并得到了同样的错误.
更新2
我从heroku克隆了应用程序,"学校"在模式中.
create_table "schools", :force => true do |t|
...
...
end
Run Code Online (Sandbox Code Playgroud)
更新3
尝试恢复到rails 3.1.0,但这没有帮助.
更新4
仍在努力.还没有收到heroku的支持.
更新5
Heroku支持能够检查"学校"不是数据库中的表,但我仍然无法访问控制台和应用程序仍然关闭.
Heroku支持帮助我解决了这个问题,尽管我们发现它并不一定是heroku的平台相关问题.
我遇到了鸡与蛋的问题,迁移不会运行,因为rails bootstrap正在尝试与表进行通信,并且由于迁移无法运行而未创建表.当rails引导时,ActiveAdmin正在初始化,并试图查找学校.谢谢大家的帮助.
我通过评论解决了这个问题
#ActiveAdmin.routes(self)
Run Code Online (Sandbox Code Playgroud)
在迁移前的路线中.完成迁移后,我只是取消注释这一行,一切正常.