Column binding

Serwis pozwala walidować przed rozpoczęciem porównania, czy tabele można do siebie porównać. Służy do tego endpoint: POST /compare/bind

Przykład i opis body dla POST /compare/bind:

  • source/targetDatabaseConnectionInfo-> informacje o źródłowej i docelowej bazie danych, opcje databaseType: POSTGRES, ORACLE, SQLSERVER

  • source/targetTables-> lista tabel do sprawdzenia z bazy źródłowej i docelowej z informacją o nazwie schema, tabeli, kluczu głównym oraz porównywanych kolumnach poza kluczem w tabeli źródłowej i docelowej. serwis pobiera informację z bazy danych o kluczu głównym i indeksach. serwis pobiera pełną listę kolumn i sortuje ją alfanumerycznie.

{
    "sourceDatabaseConnectionInfo": {
        "databaseType": "POSTGRES",
        "url": "jdbc:postgresql://localhost:5432/postgres",
        "username": "postgres",
        "password": "postgres"
    },
    "targetDatabaseConnectionInfo": {
        "databaseType": "ORACLE",
        "url": "jdbc:oracle:thin:@localhost:1521:ORCLCDB",
        "username": "system",
        "password": "Oracle_123"
    },
    "sourceTables": [
        {
            "schema": "test_data",
            "name": "cat"
        },
        {
            "schema": "test_data",
            "name": "cat2"
        },
    ],
    "targetTables": [
        {
            "schema": "SYSTEM",
            "name": "CAT"
        },
        {
            "schema": "SYSTEM",
            "name": "CAT2"
        },
    ]
}

Przykład i opis response dla POST /compare/bind:

result -> określa, czy w trakcie walidacji wystąpił jakiś ogólny błąd

message -> w przypadku błędu określa jego powód

boundTablesList -> lista wyników walidacji. Dla każdej tabeli z pary zwracane jest:

  • lista informacji o indeksach - dla każdego indeksu nazwa, czy jest unikalny oraz lista indeksów kolumn w indeksie (indeksy odnoszą się do listy wszystkich kolumn)

  • informacja o kluczu głównym - nazwa, oraz lista indeksów kolumn w kluczu (indeksy odnoszą się do listy wszystkich kolumn)

  • lista kolumn wraz z ich typami, posortowane po nazwach kolumn

  • nazwa schematu i tabeli

  • szacowany rozmiar tabeli w bajtach

W polu result zwracana jest informacja o walidacji dopasowania klucza głównego (primaryKey) i pozostałych kolumn (columns).

  • SUCCESS - dopasowanie się udało

  • WARNING - dopasowanie jest możliwe, ale wymaga ustawienia odpowiednich flag. Lista warnings może zawierać następujące wartości:

    • BOOLEAN_TYPE_MAPPING_BINDING_WARNING - trzeba ustawić flagę mapBooleanTypes na true

    • POSTGRES_MONEY_TYPE_MAPPING_BINDING_WARNING - trzeba ustawić flagę mapPostgresMoneyTypeToDouble na true

    • ORACLE_DATE_TYPE_MAPPING_BINDING_WARNING - trzeba ustawić flagę treatOracleDateAsTimestamp na true

  • ERROR - dopasowanie niemożliwe, opis błędu w polu message

Last updated