В настоящее время я переношу веб-приложение с одной платформы на другую, и часть этой миграции включает перемещение данных из базы данных Postgres в базу данных MySQL. Структуры таблиц не будут одинаковыми, поэтому мне интересно, какие предложения по перемещению содержимого таблицы, но не структуры, из одного БД в другой? Под этим я подразумеваю перемещение всех данных строки в данной таблице в другую строку в другой таблице в другой базе данных, которая не использует ту же структуру таблицы. Приложение довольно маленькое, и это будет одноразовая миграция, поэтому я не возражаю, если процесс выполняется вручную для каждой строки.
Я знаю достаточно SQL, чтобы быть опасным, поэтому я смотрел, какие инструменты доступны для новичков. Могу ли я это сделать в Navicat? Любой совет будет очень признателен.
Подход, который я бы использовал, будет основан на новой структуре. Для каждой таблицы в новой структуре создайте SQL-запрос, который извлекает данные из старой структуры и помещает их в базовый формат CSV, а затем импортирует в новую структуру. Я замалчиваю такие вещи, как обеспечение совпадения ключей, обеспечение того, чтобы вы всегда получали одинаковое представление наборов данных с новой структурой и т. Д.
Именно для этого и предназначены такие инструменты, как Pentaho Kettle, Talend Studio и CloverETL; общая категория инструментов - ETL («Извлечь; Преобразовать; Загрузить»).
К сожалению, их кривая обучения может быть очень крутой, поэтому может быть проще просто написать несколько запросов для извлечения CSV, которые вы можете COPY
в новую БД, как советует Джон.