Задать вопрос

Как при создании новой базы в Redmine в докере сразу задать ей uft8?

Вроде бы достаточно простой вопрос, но за выходные не победил

В docker-compose.yml:

redmine:
    image: redmine

  db:
    image: mysql:5.7


база создается с кодировкой latin1_swedish_ci и не позволяет создавать объекты с кириллицей.

Замена на для всей базы
ALTER DATABASE redmine CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ничего не дает - все таблицы остаются в latin1_swedish_ci

Если, например, вручную меняю в journals поле notes на utf8mb4_unicode_ci - то, конечно, комментарии сразу начинают сохраняться и в кириллице.
Параметр REDMINE_DB_ENCODING вроде бы и так по-умолчанию описан, как uft8

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

Может как-то проще можно сразу создать базу так, чтобы все текстовые поля были в uft8?

Updated:
В итоге пришлось все-таки обойтись разовой конвертацией всех таблиц
Нелогично, но работает

mysql -u root -p --database=redmine -B -N -e "SHOW TABLES" | awk '{print "SET foreign_key_checks = 0; ALTER TABLE", $1, "CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; SET foreign_key_checks = 1; "}' | mysql -u root -p --database=redmine


Updated2:

Для создания в utf8 помогла установка кодировки и сортировки сервера через command в контейнере mysql.
https://dev.mysql.com/doc/refman/8.0/en/charset-se...

db:
    image: mysql:5.7

    command:
      - "--character-set-server=utf8"
      - "--collation-server=utf8_general_ci"
  • Вопрос задан
  • 218 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@vitaly_il1
DevOps Consulting
Скорее всего, это баг (или undocumented) в Redmine image.
См. например
https://github.com/docker-library/redmine/issues/179
https://github.com/docker-library/redmine/issues/198
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
Докер здесь скорее всего непричем. Это особенность программного продукта Redmine.

С какой кодировкой у тебя создана база? Документация по Redmine https://www.redmine.org/projects/redmine/wiki/Redm... явно указывает пример c utf8 как правильный шаблон для демлоймента.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы