Перенос базы данных - старая база данных во вновь определенную базу данных - PullRequest
0 голосов
/ 17 мая 2019

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

  1. У меня есть много новых таблиц мастеров, которых нет в старой базе данных.
  2. Я использовал разные данныетипы для первичного ключа: int в новом db, но GUID в старом db в большинстве случаев.
  3. Я добавил дополнительные столбцы в новый db и удалил старые столбцы.
  4. Я добавил много таблиц отображения, которыеотсутствуют в старой базе данных.
  5. Старая база данных хранит значение для данных для 2 - 3 полей в 1 столбце (например, «Индия, MH, Pune» в 1 столбце), и я храню его в разных столбцах.

Может кто-нибудь прояснить мои проблемы?

1 Ответ

0 голосов
/ 17 мая 2019

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

  1. В старой базе данных создайте представления, которые имитируют новую структуру базы данных.Экспортируйте представления из старой базы данных и импортируйте их в новую базу данных.

  2. Экспорт данных из старых таблиц базы данных.Импортируйте данные в промежуточную схему в новой базе данных.(Создайте промежуточную схему с помощью SQL create schema ...). Напишите запросы или хранимые процедуры в новой базе данных, которая преобразует данные из промежуточных таблиц в новые таблицы.

Существуют инструменты, которые могут помочь,Но вы еще не определили свои базы данных, и рекомендации по инструментам не относятся к теме StackOverflow.

В любом случае вам может потребоваться добавить один или несколько столбцов для сопоставления старых первичных ключей с новыми первичными ключами.Например, если в ваших новых таблицах еще нет столбца для старого GUID, вы можете добавить в новую таблицу столбец для старого GUID.Когда вы делаете это, вы всегда можете найти нужное целое число, когда вам нужно это знать.(Используйте SQL-соединение, а не функцию row-by-agonizing-row.)

Смысл в том, чтобы найти надежный способ получить правильное новое целое число, учитывая только старый GUID.У многих новых разработчиков баз данных возникают проблемы с автоинкрементными целыми числами или последовательностями.Некоторые проделывают огромную работу, прежде чем осознают свою ошибку.Не будь одним из тех людей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...