2015-05-16 2 views
2

У меня есть приложение rails, размещенное в heroku. У меня есть таблица «Вопросы» с столбцом содержимого. В столбце «Содержание» содержится слово вопроса. Так, например, если вы спросили. Question.first.content, вы получите «Привет, как дела?». У меня всего 8 вопросов. Я хотел бы вручную перейти в базу данных и изменить эти вопросы.Как вручную изменить запись в базе геройку

Я попытался запустить терминал на Heroku с этой командой:

heroku pg:psql 

и я использовал этот запрос, чтобы изменить столбец содержимого записи

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

Однако я получаю сообщение об ошибке:

ERROR: column "What country does this story orginate? (Japan)" does not exist
LINE 2: SET content="What country does this story orginate? (Japan)"...

Каков правильный запрос об изменении столбца содержимого вопроса?

+1

http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS –

+0

Или вы можете использовать рельсы консоли - героинские рельсы c – Richardlonesteen

ответ

4

Получается, что я могу сделать heroku run console. Однажды в консоли я могу делать активные запросы записи, такие как Question.find(1).update_attributes(:content=>'how are you?'), и он обновляется. По какой-то причине heroku run rails console не обновил запись активными запросами записи, а просто вернул, что запрос был успешным.

2

SQL использует одинарные кавычки для строковых литералов и двойных кавычек для идентификаторов (например, имена таблиц и столбцов), поэтому вы получаете жалобу на неизвестный столбец. Исправление проста, используйте одинарные кавычки для строкового литерала:

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

Некоторые базы данных позволяют использовать двойные кавычки для строк, но это нестандартное и его следует избегать.

Смежные вопросы