Копирование данных датабазы
Подскажите, пожалуйста, как правильно написать запрос для копирования данных из одной ДБ в другую.
Есть датабаза с кучей ненужных полей (некоторые имеют данные) и чистая датабаза. При нормальном копировании только данных сразу вылетает ошибка что в новой дб нет какого-нибудь поля. Как скопировать данные ДБ1 в ДБ2, что бы не вылетала эта ошибка и при копировании переносились только те данные для которых есть соответствующее поле?
Есть датабаза с кучей ненужных полей (некоторые имеют данные) и чистая датабаза. При нормальном копировании только данных сразу вылетает ошибка что в новой дб нет какого-нибудь поля. Как скопировать данные ДБ1 в ДБ2, что бы не вылетала эта ошибка и при копировании переносились только те данные для которых есть соответствующее поле?
1 ответов
В общем случае, Вам надо :
1. Прочитать метаданные базы назначения и источника.
2. Создать что-то похожее на словарь/матрицу, в котором бы описывалось соответствие старых и новых полей/таблиц.
3. Сгенерировать скрипт, который бы экспортировал только нужные данные
Наверняка есть приложения, которые в той или иной степени облегчают задачу. Насколько я знаю, прямо из коробки ни один сервер полностью такой утилиты не предлагает (много всего прийдется дописывать руками). Поищите Database migration tools...
Другой вариант - взять и скопировать все полностью, а потом удалить "лишние" поля вручную...
А какая СУБД?
Если MySQL, с помощью mysqldump не получится, зато можно так:
mysql -u USERNAME --password=PASSWORD --database=DATABASE --execute='SELECT `FIELD1`, `FIELD2` FROM `TABLE` LIMIT 0, 10000 ' -X > file.xml