Rails Migration: добавление комментария в колонку без изменения типа - PullRequest
0 голосов
/ 18 октября 2018

В настоящее время я работаю над задачей добавления большого количества комментариев к столбцам в базе данных.В настоящее время я подхожу к нему, пытаясь использовать функцию change_column, как показано ниже;однако я сталкиваюсь с некоторыми ошибками и беспокоюсь, что могу случайно изменить некоторые типы, когда я на самом деле хочу оставить их в покое.

change_column :tablename, :id, :bigint, comment: "id"

Это приводит к следующей ошибке, когда рассматриваемый столбец является внешним ключом.:

Mysql2 :: Ошибка: невозможно изменить столбец 'id': используется в ограничении внешнего ключа 'fk_rails_ (8-значный ряд цифр и букв)' таблицы 'databasename.tablename'

Я также попробовал следующий подход,

change_column_comment :tablename, :id, comment:'ID'

, это приводит к следующей ошибке:

change_column_comment (: tablename,: id, {: comment => "ID"})

рельсы прерваны!NotImplementedError: ActiveRecord :: ConnectionAdapters :: Mysql2Adapter не поддерживает изменение комментариев столбца

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Внешние ключи все еще являются проблемой, но мне удалось получить разумный результат, извлекая текущие типы данных и используя их в следующей структуре операторов для каждого столбца.

connection.execute("ALTER TABLE `tablename` MODIFY `id` bigint(20) comment 'ID'")
0 голосов
/ 18 октября 2018

Я не понимаю вас, но почему вы не использовали add_column вместо change_column

add_column :tablename, :comment, :text, default: "ID"
...