Миграция Varchar в текст в Mysql
Я конвертирую один из столбцов "Varchar" в таблице MySQL в текстовое поле. Я просто использую одну команду alter для преобразования типа. Когда я прочитал о тексте, varchar узнал, что у него есть разница в механизмах хранения.
Я должен написать какой-либо сценарий миграции, чтобы изменить тип столбца и переместить данные, или достаточно одной команды изменения типа?
2 ответа
Там нет большой проблемы, чтобы изменить varchar
в text
так как text
поддерживает большую длину данных, чем varchar
, но если поле имеет индекс, его необходимо удалить и создать новый индекс с префиксом col_name(length)
(см. CREATE INDEX синтаксис).
В соответствии с вашими данными, возможно, было бы неплохо использовать fulltext
индексы, но это подразумевает изменение поисковых выражений в этом поле.
Если вы находитесь в производственной среде, таблица будет заблокирована, пока выполняется миграция, чтобы предотвратить потерю данных.