Користувальницькькі налаштування

Налаштування сайту


migration2_exten

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
Наступна ревізія
Попередня ревізія
migration2_exten [2024/10/01 17:38]
bobr [Фінальний контроль]
migration2_exten [2024/10/01 18:02] (поточний)
bobr [Структура файлу імпорту]
Рядок 1: Рядок 1:
 ====== Міграція абонбази 2 - "РОЗШИРЕНА" ====== ====== Міграція абонбази 2 - "РОЗШИРЕНА" ======
-Починаючи з релізу 1.3.1 доступна так звана "РОЗШИРЕНА" версія модуля [[migration2|"Міграція 2"]], яка трохи більше, ніж повністю базується на методі імпорту **"Ubilling live register"**, що в свою чергу зумовлює використання "стандартного режиму реєстрації абонента в Ubilling", з безпосереднім залученням Stargezer'у до цього процесу(що накладє певні обмеження, про які буде сказано пізніше). \\+Починаючи з релізу 1.3.1 доступна так звана "РОЗШИРЕНА" версія модуля [[migration2|"Міграція 2"]], яка трохи більше, ніж повністю базується на методі імпорту **"Ubilling live register"**, що в свою чергу зумовлює використання "стандартного режиму реєстрації абонента в Ubilling", з безпосереднім залученням Stargazer'у до цього процесу(що накладє певні обмеження, про які буде сказано пізніше). \\
 Головною відмінністю цієї "версії" мігрувалки є: Головною відмінністю цієї "версії" мігрувалки є:
   * опціональна можливість "повноцінного заселення" абонів безпосередньо в процесі міграції - тобто так - створення населених пунктів, вулиць, будинків прямо "на льоту"   * опціональна можливість "повноцінного заселення" абонів безпосередньо в процесі міграції - тобто так - створення населених пунктів, вулиць, будинків прямо "на льоту"
Рядок 10: Рядок 10:
   * використання значень за замовчуванням для певних полів імпорту, якщо даних для цих полів нема у CSV файлі   * використання значень за замовчуванням для певних полів імпорту, якщо даних для цих полів нема у CSV файлі
   * можливість генерації рандомних значень для полів: **login**, **password**, **MAC address**   * можливість генерації рандомних значень для полів: **login**, **password**, **MAC address**
-  * можливість пропуску довільної кілксоті рядків від початку CSV файлу+  * можливість пропуску довільної кількості рядків від початку CSV файлу
   * неможливість використовувати будь-який інший метод імпорту, окрім "Ubilling live register"   * неможливість використовувати будь-який інший метод імпорту, окрім "Ubilling live register"
  
Рядок 20: Рядок 20:
 Власне, базується на структурі для [[migration2|"Міграція 2"]], але, як вже мабуть зрозуміло - є дещо розширеною 8-) \\ Власне, базується на структурі для [[migration2|"Міграція 2"]], але, як вже мабуть зрозуміло - є дещо розширеною 8-) \\
 Отож, на скріншоті нижче ви можете бачити всі поля даних, які може бути імпортовано. Так, всі-всі, аж до **Target network** - це поле і все, що нижче за ним - **не є полями імпорту**. Отож, на скріншоті нижче ви можете бачити всі поля даних, які може бути імпортовано. Так, всі-всі, аж до **Target network** - це поле і все, що нижче за ним - **не є полями імпорту**.
-{{ migration2exten13.jpg }}+{{ migration2exten13.jpg }} \\ 
 +Тобто створюєте свій CSV файл з даними з вашої БД у будь-який зручний для вас спосіб і "проектуєте" його так, щоб у ньому містилися поля, інформація в яких "задовольнить" максимальну кілкість полів імпорту - таким чином отримуєте максимально можливий профіт від процесу міграції і мінімізуєте "мануальні маніпуляції руками" у подальшому.
  
 ===== Маппінг полів імпорту до полів CSV файлу ===== ===== Маппінг полів імпорту до полів CSV файлу =====
Рядок 32: Рядок 33:
  
 ==== IP-мережа ==== ==== IP-мережа ====
-Якщо у випадаючому списку **NAS IP address** буде вказано номер поля з файлу імпорту - скрипт буде намагатись для даного абонента автоматично визначити мережу у вашому поточному Ubilling інстансі. Працює все доволі просто: беремо IP NAS'у і шукаємо мережу з таким NAS'ом - все. Якщо нічого не було знайдено - використовуємо мережу вказану у наступному випадаючому списку **Target network** - тобто списку мереж вашого Ubilling інстансу: \\+Якщо у випадаючому списку **NAS IP address** буде вказано номер поля з файлу імпорту - скрипт буде намагатись для даного абонента автоматично визначити мережу у вашому поточному Ubilling інстансі. Працює все доволі просто: беремо IP NAS'ушукаємо мережу з таким NAS'ом і беремо її **ID** - все. Якщо нічого не було знайдено - використовуємо мережу вказану у наступному випадаючому списку **Target network** - тобто списку мереж вашого Ubilling інстансу: \\
 {{migration2exten11.jpg}} {{migration2exten11.jpg}}
  
Рядок 45: Рядок 46:
 ===== Обмеження ===== ===== Обмеження =====
 Метод імпорту **"Ubilling live register"** накладає такі обмеження  Метод імпорту **"Ubilling live register"** накладає такі обмеження 
-  * строга вимога до коректності структури файлу імпорту та, власне, імпортованих даних: так, зайві символи-делімітери або "кракозябри" в даних можуть призвести до фатальної помилки в процесі виконання скрипта, яка призведе до зупинки процесу імпорту "десь посеред дороги" і вгадувать потім, які записи було імпортовано, які ні, а які було імпортовано частково - вам доведеться самостійно, витративши чимало часу(це гарантовано на 88.88%) +  * строга вимога до коректності структури файлу імпорту та, власне, імпортованих даних: так, зайві символи-делімітери або "кракозябри" в даних можуть призвести до фатальної помилки в процесі виконання скрипта, яка призведе до зупинки процесу імпорту "десь посеред дороги" і вгадувать потім, які записи було імпортовано, які ні, а які було імпортовано частково і "викусювати" то з CSV файлу - вам доведеться самостійно, витративши чимало часу(це гарантовано на 88.88%) 
-  * неможливість імпортувати всю вашу БД з CSV файлу розміром кілька гіг: так, оскільки імпорт кожного запису займає певний час, то виконання всього скрипта може банально впертися в ліміт **max_execution_time**, а використання **set_time_limit(0)** як потенційного лайфхаку швидше за все банально приведе до **HTTP timeout** - тому **розділяйте** свою БД на кілька CSV файлів за якимись ознаками, типу місто, вулиця, тег, IP-мережа, etc+  * неможливість імпортувати всю вашу БД з CSV файлу розміром кілька гіг одразу за раз: так, оскільки імпорт кожного запису займає певний час, то виконання всього скрипта може банально впертися в ліміт **max_execution_time**, а використання **set_time_limit(0)**як потенційного лайфхакушвидше за все банально приведе до **HTTP timeout** - тому **розділяйте** свою БД на кілька CSV файлів за якимись ознаками, типумісто, вулиця, тег, IP-мережа, etc
  
  
migration2_exten.1727793493.txt.gz · Востаннє змінено: 2024/10/01 17:38 повз bobr