Skip to content

Romanow/data-migration-job

Repository files navigation

CI pre-commit Release Docker Pulls License

Batch process for data migration

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.