Все, импорт прошел успешно :)
{
"data": {
"startImportProcessor": {
"success": true,
"message": "",
"errors": [],
"data": {
"id": "cjodrhwegbp8q0850k7n6x2a4",
"createdAt": "2018-11-12T03:42:18.952Z",
"updatedAt": "2018-11-12T03:47:07.834Z",
"name": "Импорт со старого сайта",
"status": "Completed",
"CreatedBy": null,
"Logs": [
{
"id": "cjodrhwjybp8x0850m230niby",
"level": "Info",
"objectType": "Import",
"message": "Было получено 3567 пользователей",
"stack": null
},
{
"id": "cjodrj8s7bxib0850w1980w3w",
"level": "Info",
"objectType": "Import",
"message": "Записано: 3567, пропущено: 0, ошибок: 0",
"stack": null
},
{
"id": "cjodrj8sxbxij0850gbp8sckf",
"level": "Info",
"objectType": "Import",
"message": "Было получено 42 блогов",
"stack": null
},
{
"id": "cjodrj9labxnb08508c1gfcee",
"level": "Info",
"objectType": "Import",
"message": "Записано: 42, пропущено: 0, ошибок: 0",
"stack": null
},
{
"id": "cjodrj9nkbxnj0850xj09epwc",
"level": "Info",
"objectType": "Import",
"message": "Было получено 1169 топиков",
"stack": null
},
{
"id": "cjodrk6cxc2610850yfujjbrp",
"level": "Info",
"objectType": "Import",
"message": "Записано: 1169, пропущено: 0, ошибок: 0",
"stack": null
},
{
"id": "cjodrk6kuc2690850c270wz6b",
"level": "Info",
"objectType": "Import",
"message": "Было получено 8032 комментариев",
"stack": null
},
{
"id": "cjodro3akcx8b0850g4wv3bn3",
"level": "Info",
"objectType": "Import",
"message": "Записано: 8032, пропущено: 0, ошибок: 0",
"stack": null
}
]
}
}
}
}
Меньше 5 минут. Блоги, топики, комменты, 9243 документа. И 3567 пользователей. Это при том, что для многих топиков и комментариев еще тексты из обычного текста конвертировались в draft-js. Красота! :)
Вообще, в этом как раз сильная сторона javascript - в то время, как "php создан, чтобы умирать", запущенный javascript-процесс крутится постоянно. Если он завершился, значит он умер. Вот и получается, что импортеры можно писать такие, которые просто часами могут работать, перелопатив не только тысячи, но и миллионы записей. Короче, мой ранее выпущенный modImporter - детский сад по сравнению с ним.
Самое интересное здесь: https://github.com/MODX-Club/import-old-site/blob/master/src/modules/processor/index.mjs
Модифицировав его, можно не только из одной базы данных в другую перегонять данные, но и собирать данные с нескольких источников, обрабатывать их и распределять в другие точки. Если кому-то что-то надо в таком плане, обращайтесь.
А теперь осталось только интерфейсы сайта актуализировать и в бой.