Fork me on GitHub

The WebDevil

Enjoy development

Итак, есть проект. В нем порядка 70 миграций. В них никто не задумывался о UTF8, потому при создании таблиц по дефолту создаются они с collation = latin1_general_ci. После чего русский выводится как “????”.

Смог полечить следующим образом: в файле /etc/mysql/my.cnf прописать

set-variable=default-character-set=utf8
set-variable=default-collation=utf8_general_ci

Все таблицы создались как положено в UTF8, я счастлив.

3 Responses to “Rails and MySQL and UTF8”

  1. В целом, уже с ходу не вспомню. Но после некоторых плясок с бубном, в ситуации, когда необходимо сохранить более ранний принцип работы с latin1, а также сохранить latin1 таблицы, но, при этом, оставить возможность работать с UTF8 полями в этих таблицах…

    Создаем базу данных с интересующими нас полями: где нужно, utf8, где не нужно latin1 (этот принцип позволяет использовать скорость и оптимальность latin1, не создавая безсмысленные индексы тройного размера, на поля, где это не есть неоходимым).

    На мой взгляд это есть более правильным методом так как в полях [var]char и text часто также находятся данные, в которых не может быть не-latin1 символов ни при каких условия, но использование utf8 здесь приводит к очень серьезным потерям производительности.

    В целом же, это вопрос подхода/стиля/специфики.

    MrKoin

  2. мускуль это фигня…

    DeViL

  3. Фигня – не то слово. Очевидно, именно из-за этого он так закрепился на рынке.

    dm