GitHub: romanow/data-migration-job.
Используем docker-compose.yml
Скрипт представляет собой приложение командной строки и запускается как k8s Job. Подключается к двум БД (SOURCE_*
и
TARGET_*
) и поочередно перекладывает данные между таблицами, описанными в переменной batch-processing.tables
. Пример
описания переменной batch-processing.tables
:
batch-processing:
tables:
- key-column-name: uid
source:
schema: public
table: users
target:
schema: public
table: users
Параметры подключения к SOURCE и TARGET базам данных (application.yml
):
spring:
datasource:
source:
jdbc-url: jdbc:postgresql://${SOURCE_DATABASE_HOST:postgres}:${SOURCE_DATABASE_PORT:5432}/${SOURCE_DATABASE_NAME:source}
username: ${SOURCE_DATABASE_USER:program}
password: ${SOURCE_DATABASE_PASSWORD:test}
driver-class-name: org.postgresql.Driver
target:
jdbc-url: jdbc:postgresql://${TARGET_DATABASE_HOST:postgres}:${TARGET_DATABASE_PORT:5432}/${TARGET_DATABASE_NAME:target}
username: ${TARGET_DATABASE_USER:program}
password: ${TARGET_DATABASE_PASSWORD:test}
driver-class-name: org.postgresql.Driver
Для подключения внешней конфигурации нужно положить файл /opt/config/external.yml
.