Все, импорт прошел успешно :) Меньше 5 минут. Блог

Все, импорт прошел успешно :)

{
  "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 Самое интересное здесь: https://github.com/MODX-Club/import-old-site/blob/master/src/modules/processor/index.mjs

Модифицировав его, можно не только из одной базы данных в другую перегонять данные, но и собирать данные с нескольких источников, обрабатывать их и распределять в другие точки. Если кому-то что-то надо в таком плане, обращайтесь.

А теперь осталось только интерфейсы сайта актуализировать и в бой.