Легкого пути нет, нет. Насколько я могу судить, вам необходимо внести следующие изменения в БД:
В field_config
измените столбец type
на «list_text», а столбец module
на «список» для своего поля.
Затем вам нужно изменить сериализованный массив в столбце data
, чтобы он соответствовал списковому типу (он будет иметь настройки для текстовых типов на данный момент, очевидно). Здесь нет простого способа показать вам, как это сделать, лучше всего сравнить сериализованный массив с одним для другого поля типа списка, тогда вы сможете увидеть, какие значения нужно удалить / изменить. , Массив allowed_values
в settings
будет тем местом, где вы поместите значения вашего списка. Как только это будет изменено, повторно сериализуйте его и поместите обратно в столбец data
для вашего поля.
После этого удалите все столбцы из таблиц field_data
и field_revision
вашего поля, которые начинаются с field_myfield_
, но не field_myfield_value
(этот тип списка по-прежнему нуждается в этом столбце) .
Добавить индекс к этим таблицам для столбца value
.
Очистить кеш
Я должен предупредить, что это полностью не проверено, просто кажется, что имеет смысл смотреть на структуры таблиц, было бы неплохо сделать резервную копию трех таблиц, с которыми вы будете играть на всякий случай.