Ошибка Mroonga SQL Alter Table, '[объекту] [регистру] не удалось зарегистрировать имя: <# sql-8c0_13>::» - PullRequest
0 голосов
/ 24 октября 2018

Мне трудно найти какую-либо информацию об этой ошибке.

В моей ситуации я выполняю миграцию для обновления комментариев столбцов.Это значит, что я вызываю 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
...