我在本地环境中添加了一个名为schools
并且在开发中运行良好。事实上,它甚至在暂存(heroku)中工作得很好,但在生产中却失败了很多rake db:migrate
抛出以下错误。
我什至无法预编译资产(使用 RAILS_ENV=生产),访问我的应用程序的任何部分,包括生产中的 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
我对此很迷茫。我在这里阅读了有关该主题的其他几个问题,但目前还没有解决方案。感谢您的帮助。
任何见解都将受到高度赞赏。
UPDATE-------------------------------------------------- ----
我刚刚在 heroku 上创建了一个全新的应用程序并运行rake db:migrate
并得到同样的错误。
UPDATE 2
我从 heroku 克隆了该应用程序,并且“学校”位于架构中。
create_table "schools", :force => true do |t|
...
...
end
UPDATE 3
尝试恢复到 Rails 3.1.0 但这没有帮助。
UPDATE 4
仍在致力于此。还没有收到 heroku 支持的消息。
UPDATE 5
Heroku 支持人员能够检查“学校”不是数据库中的表,但我仍然无法访问控制台,并且应用程序仍然处于关闭状态。