以下の内容はgitlabをmysqlを使えるように手動インストールした物をアップデートした際の出来事の個人メモです。
gitlabを7.10から8.0.4へアップデートしたらgitlabへログインする際に500エラーが発生してログインできなくなった。
log/production.logを確認したところ、audit_eventsテーブルのdetailsカラムへプロフィールの表示名(日本語)を書き込む際にMysql2::Error: Incorrect string value
が発生しているようだった。
そこでaudit_eventsのCHARSETをutf8に変更した所、正常にログイン出来るようになった。
あとは今後のアップデートでdb:migrateでCHARSETの書き換えが引っかからなければ問題ないはず?
以下に編集後のテーブル構造のダンプをメモしておく。
audit_events.sql
--
-- テーブルの構造 `audit_events`
--
CREATE TABLE IF NOT EXISTS `audit_events` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`author_id` int(11) NOT NULL,
`type` varchar(255) CHARACTER SET latin1 NOT NULL,
`entity_id` int(11) NOT NULL,
`entity_type` varchar(255) CHARACTER SET latin1 NOT NULL,
`details` text COLLATE utf8_unicode_ci,
`created_at` datetime DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `index_audit_events_on_author_id` (`author_id`),
KEY `index_audit_events_on_type` (`type`),
KEY `index_audit_events_on_entity_id_and_entity_type` (`entity_id`,`entity_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2 ;
これgitlabの方へIssueとか立てればいいんだろうけど、英語全く書けないから誰かが報告してくれるの期待したいな…(´・ω・)