如何手动更改heroku数据库中的记录

时间:2015-05-16 18:22:50

标签: postgresql ruby-on-rails-4 heroku heroku-toolbelt

我在heroku中托管了一个rails应用程序。我有一个带有内容列的问题表。内容列包含问题的单词。例如,如果您查询。 Question.first.content,你会得到“你好,你好吗?”。我总共有8个问题。我想手动进入数据库并更改这些问题。

我尝试使用此命令在heroku上运行终端:

heroku pg:psql

我使用此查询来更改记录的内容列

UPDATE Questions
SET content="What country does this story orginate? (Japan)"  

但是我收到此错误消息:

  

错误:专栏“这个故事在哪个国家?(日本)”不存在   第2行:SET内容=“这个故事在哪个国家?(日本)”......

更改问题内容列的正确查询是什么?

2 个答案:

答案 0 :(得分:5)

事实证明我可以做heroku run console。进入控制台后,我可以执行Question.find(1).update_attributes(:content=>'how are you?')等活动记录查询,并进行更新。无论出于何种原因heroku run rails console没有使用活动记录查询更新记录,只是返回查询成功。

答案 1 :(得分:2)

SQL对字符串文字使用单引号,对标识符使用双引号(例如表名和列名),这就是您收到有关未知列的投诉的原因。修复很简单,使用单引号作为字符串文字:

update questions set content = '...' where ...

某些数据库允许您对字符串使用双引号,但这是非标准的,应该避免使用。