Массовый перевод содержания таблицы

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

Поскольку это не простая миграция 1 к 1, и результирующие строки являются родительскими / дочерними строками на основе ключей, сгенерированных идентификаторами, какой лучший механизм для выполнения миграции?

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

Если кто-то еще внесет свой вклад, я буду признателен за отзывы

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
0
275
2

Ответы 2

Спасибо за предложение, но я бы предпочел разработать программное решение. В настоящее время я использую Nant / CruiseControl для автоматизации тестов, и мне нужно что-то, что я могу воссоздать на лету на основе текущего живого устаревшего контента.

Это мой стандартный подход:

  • создайте свою новую модель данных
  • перетащить данные в новую БД без изменений
  • напишите (и запустите) сценарий SQL для выполнения миграции
  • тестовое задание
  • (необязательно) удалить таблицы с устаревшими данными

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

Запустив процесс в Query Analyzer (или аналоге в ваших dbms), вы получите то преимущество, что вы можете обернуть все в транзакцию, чтобы вы могли откатиться, если что-то пойдет не так. Напишите его по частям и протестируйте по частям в своей базе данных разработчика. Как только все заработает правильно, установите скрипт в производственной базе данных.

Сортировано.

Другие вопросы по теме