我是ruby on rails环境的新手。
我使用seeds.rb
将数据库与数据一起迁移到heroku。在运行TableName.all
的heroku服务器中填充heroku postgres中存在的所有数据。当我尝试运行像
TableName.select("Distinct(Category)")
我收到错误
Column TableName.Category does not exist.
我尝试了changin专栏,但没有奏效。请告诉我这里出了什么问题。
提前致谢
修改
在我的开发服务器上它工作正常。开发站点没有问题。我在DEv网站上使用SQLite
修改**
以下是来自:
的续集文字 #rails console
>>Recall.all
SELECT "recalls".* From "recalls"
=>[#<Recall id:1, Category: "******",......>]
>>Recall.select("Distinct(Category)")
SELECT DISTINCT(Category) From recalls
=>[#<Recall Category: "Foods">,#<Recall Category: "Consumer Products">]
#heroku run console
>>Recall.all
SELECT "recalls".* From "recalls"
=><Recall id:1, Category: "******",......>
>>Recall.select("Distinct(Category)")
Recall Load <2.5ms> SELECT DISTINCT(Category) FROM "recalls"
PGError: ERROR: column "category" does not exist
LINE 1:SELECT DISTINCT(Category) FROM "recalls"
^
:SELECT DISTINCT(Category) FROM "recalls"
ActiveRecord::StatementInvalid: PGError: ERROR: column "category" does not exist
LINE 1:SELECT DISTINCT(Category) FROM "recalls"
:SELECT DISTINCT(Category) FROM "recalls"
答案 0 :(得分:1)
您似乎没有在Heroku上正确设置数据库表。你做过像heroku run db:migrate
这样的事吗?
你为什么不调查?你试过heroku pg:psql
吗?见here。
另外,你真的不应该使用SQLite - 它不是同一个数据库 - 并且SQL不是跨数据库的标准。在某些时候你会遇到一个非常微妙的数据库错误。
答案 1 :(得分:0)
我找到了答案。这是转义序列问题。 这是我如何修复
Recall.select("DISTINCT(\"Category\")")