MyWackoSite: NsuTs/Вам запрещён доступDocumentation/devguide/Миграцияданных ...

Home Page | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация | Вход:  Пароль:  

Миграция данных

Задача

Перенос данных из nsuts 1.2.8 в nsuts 1.3.0 для
  1. сохранения задач, тестов, условий из старых олимпиад и предоставления возможности их «дорешивания»
  2. сохранения результатов прошедших олимпиад (рейтинги, отчеты)

Варианты

  1. Используя ORM сгенерировать объектные представления из старой схемы базы данных и из новой. Затем написать методы для получения каждой сущности новой базы данных
  2. Использовать SQL-скрипты для извлечения данных из старой базы данных.

Решение

1)Устранение неконсистентных записей в старой системе
2) Скрипт migrator, экспортирующий исходные данные, преобразующий и импортирующий их в целевое местоположение.

  1. Копирование статических данных. Задаются при создании базы данных, это таблицы, содержащие города (cities), университеты (universities), компиляторы (langs). Эти данные не изменились при переходе на новую систему.
  2. Копирование данных, обязательных для переноса (для построения рейтингов и отчетов). Например, это таблицы с описание туров (tour), посылок (submits), временных сдвигов (timeshift).
При этом:
  1. Копирование данных, характеризующих участие конкретной команды в олимпиаде, но не влияющее на построение общих отчетов и рейтингов. Например, это таблицы, содержащие уведомления, полученные пользователем (notifications), вопросы, заданные во время тура (qna), ссылаются на team.id.
PS представление многих данных изменилось, поэтому используются конверторы. Примеры:
1) в старой системе для форматирования новостей использовался язык разметки bbcode. В новой системе, с введением WYSIWYG-редактора, основанного на Java Script? и встраиваемого в веб-страницу, потребовалось преобразовать содержание новостей в HTML-код.
2) экранирование кавычек
3) для временного сдвига указывается начало и конец, а не интервал как раньше
PPS Тексты, отправленные на печать (print), журнал событий (log) относятся к проошедшим олимпиадам и вряд ли могут быть полезны в будущем. Такие данные игнорируются ри переносе.
PPPS Текущая структура базы данных лежит в /branches/nsuts-1.3.0.0/sql/nsuts_db.sql

3) В nsuts 1.3.0 реализована функциональность подключения старого аккаунта:
при вводе логина и пароля от старой системы происходит привязка записи из таблицы user к импортированной записи team (поиск по old_userid)

Возможные проблемы при миграции


 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]