Просмотр Обновление сайта с EE1 до EE2 с полем nGen File field
Шаг 1: Перед апгрейдом изменить все поля с ngen field на текстовое поле input. Не переживайте, все данные останутся целыми и невредимыми.
Шаг 2: Обновите движок согласно официальной документации, затем измените тип поля на File (это стандартное поле есть в версии Expressionengine 2.х) или Assets (если вы используете данный модуль) для ранее измененных полей.
Далее нам потребуется сделать SQL запросы в базу данных, но тут ничего сложного, даже неопытный поймет.
Шаг 3: Сделайте бекап базы данных на всякий случай
Шаг 4: Следующий шаг будет зависеть от того, где был ранее nGen file field. Был ли он отдельным полем или в составе поля Matrix.
Шаг 4а: ...Если был отдельным полем, то следующий код:
UPDATE exp_channel_data
SET field_id_X = CONCAT('{filedir_Y}', field_id_X)
WHERE field_id_X != ''
AND field_id_X NOT LIKE '{filedir_%'
4b: For matrix fields run this query instead
X - это ID вашего поля, его можно посмотреть в exp_channel_fields
Y - ID папки загрузки, которая была прописана в настройках nGen file field. Это можно глянуть в Content > Files > File Upload Preferences (Настройки загрузки файлов).
Шаг 4б: ...Если nGen file field был в составе Matrix, то выполняем следующий код:
UPDATE exp_matrix_data
SET col_id_X = CONCAT('{filedir_Y}', col_id_X)
WHERE col_id_X != ''
AND col_id_X NOT LIKE '{filedir_%'
X - это Matrix column ID, его можно посмотреть в exp_matrix_cols
Y - ID папки загрузки, которая была прописана в настройках nGen file field. Это можно глянуть в Content > Files > File Upload Preferences (Настройки загрузки файлов).
Спасибо за этот код Brandon Kelly и Rob Sanchez.
Шаг 2: Обновите движок согласно официальной документации, затем измените тип поля на File (это стандартное поле есть в версии Expressionengine 2.х) или Assets (если вы используете данный модуль) для ранее измененных полей.
Далее нам потребуется сделать SQL запросы в базу данных, но тут ничего сложного, даже неопытный поймет.
Шаг 3: Сделайте бекап базы данных на всякий случай
Шаг 4: Следующий шаг будет зависеть от того, где был ранее nGen file field. Был ли он отдельным полем или в составе поля Matrix.
Шаг 4а: ...Если был отдельным полем, то следующий код:
UPDATE exp_channel_data
SET field_id_X = CONCAT('{filedir_Y}', field_id_X)
WHERE field_id_X != ''
AND field_id_X NOT LIKE '{filedir_%'
4b: For matrix fields run this query instead
X - это ID вашего поля, его можно посмотреть в exp_channel_fields
Y - ID папки загрузки, которая была прописана в настройках nGen file field. Это можно глянуть в Content > Files > File Upload Preferences (Настройки загрузки файлов).
Шаг 4б: ...Если nGen file field был в составе Matrix, то выполняем следующий код:
UPDATE exp_matrix_data
SET col_id_X = CONCAT('{filedir_Y}', col_id_X)
WHERE col_id_X != ''
AND col_id_X NOT LIKE '{filedir_%'
X - это Matrix column ID, его можно посмотреть в exp_matrix_cols
Y - ID папки загрузки, которая была прописана в настройках nGen file field. Это можно глянуть в Content > Files > File Upload Preferences (Настройки загрузки файлов).
Спасибо за этот код Brandon Kelly и Rob Sanchez.