Мне трудно найти какую-либо информацию об этой ошибке.
В моей ситуации я выполняю миграцию для обновления комментариев столбцов.Это значит, что я вызываю alter table sql и пишу код, который вы видите в ошибке.Насколько я знаю, нигде это не должно сработать.
Шутка ошибки:
Mysql2::Error: [object][register] failed to register a name:
<#sql-8c0_13>: <grn_io_lock failed>: ALTER TABLE `tablename`
MODIFY `tablename_id` bigint(20) DEFAULT NULL comment '',
MODIFY `other_tablename_1_id` bigint(20) DEFAULT NULL comment '',
MODIFY `other_tablename_2_id` bigint(20) DEFAULT NULL comment '',
MODIFY `name_ja` varchar(256) DEFAULT NULL comment '',
MODIFY `name_ja_sub` varchar(256) DEFAULT NULL comment '',
MODIFY `name_en` varchar(256) DEFAULT NULL comment '',
MODIFY `name_en_sub` varchar(256) DEFAULT NULL comment '',
MODIFY `is_some_trait` int(11) DEFAULT NULL comment '',
MODIFY `created_by` int(11) DEFAULT NULL comment '',
MODIFY `updated_by` int(11) DEFAULT NULL comment '',
MODIFY `deleted_by` int(11) DEFAULT NULL comment '',
MODIFY `created_at` datetime DEFAULT NULL comment '',
MODIFY `updated_at` datetime DEFAULT NULL comment '',
MODIFY `deleted_at` datetime DEFAULT NULL comment ''
(ссылки на имя столбца изменены для простоты / безопасности)
Некоторая, возможно, связанная информация:
- В этом проекте задействован японский язык
- В настоящее время я использую тестовые данные, в которых я не уверен в целостности
- Количестводанные в таблице достаточно велики для моих спецификаций компьютера и занимают некоторое время для обработки
- Я смог обновить большинство других таблиц таким же образом без каких-либо особых проблем, за исключением нескольких вероятных связанных таблиц.
- Эта таблица содержит ссылки на внешние ключи.
- Миграция, по-видимому, была успешной один раз при первой или второй попытке ее запуска, но теперь каждый раз происходит сбой, в том числе при откате, выполняющем по существу ту же функцию.(без изменений в коде при любой попытке)
- Это происходит при изменении любого столбца, даже при непосредственном запуске в mysql.
- Кажется, что все связанные таблицы используют Mroongaengine
Кто-нибудь знает решение, которое позволит мне обновлять комментарии к колонкам посредством миграции?Любая информация приветствуется.
Вот файл миграции
class UpdateCommentsForTablename < ActiveRecord::Migration[5.1]
def self.up
connection.execute("ALTER TABLE `tablename`
MODIFY `tablename_id` bigint(20) DEFAULT NULL comment 'コメント',
MODIFY `other_tablename_1_id` bigint(20) DEFAULT NULL comment 'コメント',
MODIFY `other_tablename_2_id` bigint(20) DEFAULT NULL comment 'コメント',
MODIFY `name_ja` varchar(256) DEFAULT NULL comment 'コメント',
MODIFY `name_ja_sub` varchar(256) DEFAULT NULL comment 'コメント',
MODIFY `name_en` varchar(256) DEFAULT NULL comment 'コメント',
MODIFY `name_en_sub` varchar(256) DEFAULT NULL comment 'コメント',
MODIFY `is_some_trait` int(11) DEFAULT NULL comment 'コメント',
MODIFY `created_by` int(11) DEFAULT NULL comment 'コメント',
MODIFY `updated_by` int(11) DEFAULT NULL comment 'コメント',
MODIFY `deleted_by` int(11) DEFAULT NULL comment 'コメント',
MODIFY `created_at` datetime DEFAULT NULL comment 'コメント',
MODIFY `updated_at` datetime DEFAULT NULL comment 'コメント',
MODIFY `deleted_at` datetime DEFAULT NULL comment 'コメント'")
end
def self.down
connection.execute("ALTER TABLE `tablename`
MODIFY `tablename_id` bigint(20) DEFAULT NULL comment '',
MODIFY `other_tablename_1_id` bigint(20) DEFAULT NULL comment '',
MODIFY `other_tablename_2_id` bigint(20) DEFAULT NULL comment '',
MODIFY `name_ja` varchar(256) DEFAULT NULL comment '',
MODIFY `name_ja_sub` varchar(256) DEFAULT NULL comment '',
MODIFY `name_en` varchar(256) DEFAULT NULL comment '',
MODIFY `name_en_sub` varchar(256) DEFAULT NULL comment '',
MODIFY `is_some_trait` int(11) DEFAULT NULL comment '',
MODIFY `created_by` int(11) DEFAULT NULL comment '',
MODIFY `updated_by` int(11) DEFAULT NULL comment '',
MODIFY `deleted_by` int(11) DEFAULT NULL comment '',
MODIFY `created_at` datetime DEFAULT NULL comment '',
MODIFY `updated_at` datetime DEFAULT NULL comment '',
MODIFY `deleted_at` datetime DEFAULT NULL comment ''")
end
end