Заполнение форума из файла

Автор Derty, 20 июля 2020, 11:22:16

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Derty

Обгуглившись я так и не нашел ответа -  как можно этот чудесный двиджок заполнять импортом из файла. Например из csv.


Хочется первоначальный контент закинуть попроще, а не вручную создавать кучу разделов, топиков, юзеров и пр.

Ну или хотя бы как можно быстро создать нужные разделы (есть их список), а не по-одному?


Derty

Цитата: digger® от 20 июля 2020, 12:26:06Посмотрите структуру таблиц smf_boards, smf_topics, smf_messages. Подготовьте csv с нужными данными и импортируйте средствами mysql.
Хмм.. Я конечно посмотрю, но этого не сделать раньше, чем вручную заполнить несколько разделов. Однако мне кажется, что  sql-запросом это вряд ли возможно сделать корректно. Там должны же быть связи (напр id одной сущности передаётся в другую - ID поста в раздел, ID подраздела - в главный раздел, ID юзера и поста - в разделы и др сущности)

Или я ошибаюсь?

А что, готового скрипта нет?  Ведь миграции с других платформ есть, а это же намного проще. Да и универсальнее.

digger®

Цитата: Derty от 20 июля 2020, 12:53:46Хмм.. Я конечно посмотрю, но этого не сделать раньше, чем вручную заполнить несколько разделов. Однако мне кажется, что  sql-запросом это вряд ли возможно сделать корректно. Там должны же быть связи (напр id одной сущности передаётся в другую - ID поста в раздел, ID подраздела - в главный раздел, ID юзера и поста - в разделы и др сущности)
Все id можно задать заранее вручную в csv, а не ждать автогенерации в базе.

Цитата: Derty от 20 июля 2020, 12:53:46А что, готового скрипта нет?  Ведь миграции с других платформ есть, а это же намного проще. Да и универсальнее.
А готовый скрипт каким-то чудесным образом о связях догадается? В любом случае нужно сущности связать через id. При миграции эти связи уже есть. При импорте через csv нужно их самому создать


Derty

Цитата: digger® от 20 июля 2020, 13:32:21Все id можно задать заранее вручную в csv, а не ждать автогенерации в базе.
Это невозможно.

Цитата: digger® от 20 июля 2020, 13:32:21А готовый скрипт каким-то чудесным образом о связях догадается? В любом случае нужно сущности связать через id. При миграции эти связи уже есть. При импорте через csv нужно их самому создать


На то он и скрипт, а не sql-запрос. Он может использовать функции движка. Вот они уже и передают ID и всё остальное. Так, во всяком случае, работает (нужно работать) во всех серьёзных контентных движках (ВордПресс, Джумла и тд). Я был уверен, что и тут скрипты для миграции используют функции движка, а не лезут напрямую в базу.

Цитата: digger® от 20 июля 2020, 13:32:21При миграции эти связи уже есть.
Там же старые ID, а базой генерятся новые (автоинкремент же, не?). Вот тоже почему я начал с поиска скрипта, а не с лазания в базу.

Derty

Цитата: digger® от 20 июля 2020, 13:35:11вспомнил что когда-то написал мод для импорта данных из Zebroid
А какой там формат входных данных? Не осталось ли (нельзя ли поделиться) примеров/образцов файлов для импорта?

Derty

Цитата: Derty от 20 июля 2020, 14:14:07Это невозможно.
Таааак, тут я пожалуй погорячился. IDшники не сквозные,  а уникальные для каждой таблицы.

Да, тогда, пожалуй это можно сделать. Во всяком случае разделы. С топиками и юзерами уже поггемморойней, но наверное тоже можно.

Спасибо, буду думать в эту сторону.
Но если найдется файл импорта от зеброида - был бы благодарен и этот способ рассмотрел бы.

digger®

Цитата: Derty от 20 июля 2020, 14:14:07На то он и скрипт, а не sql-запрос. Он может использовать функции движка. Вот они уже и передают ID и всё остальное. Так, во всяком случае, работает (нужно работать) во всех серьёзных контентных движках (ВордПресс, Джумла и тд). Я был уверен, что и тут скрипты для миграции используют функции движка, а не лезут напрямую в базу.
Все конвертеры сохраняют имеющиеся id.

Цитата: undefinedСпасибо, буду думать в эту сторону.
Но если найдется файл импорта от зеброида - был бы благодарен и этот способ рассмотрел бы.
https://github.com/realdigger/SMF-Zebroid-Import/blob/master/example.xml