Имя целевой схемы внешнего ключа пустое на SQL-сервере Azure - PullRequest
0 голосов
/ 16 ноября 2018

Во время работы SymmetricDS версии 3.9.15 в Azure SQL как для основной, так и для подчиненной баз данных я сталкиваюсь с ошибкой обращения к внешнему ключу при частичной начальной загрузке процесса создания таблицы.У меня есть следующая конфигурация sym_table_reload_request

    insert into SYM_TABLE_RELOAD_REQUEST (target_node_id, source_node_id, trigger_id, router_id, create_time,create_table, last_update_time)
         values ('secondary-staging_prod-us-001', 'primary-staging_prod-us-000', 'TriggerAll_2', 'primary_2_secondary-staging_prod-us', GetDate(),1, GetDate());
    insert into sym_node_security (node_id,node_password,registration_enabled,registration_time,initial_load_enabled,initial_load_time,created_at_node_id) 
     values ('000','5d1c92bbacbe2edb9e1ca5dbb0e481',0,Getdate(),0,Getdate(),'000');
    insert into sym_node_security (node_id,node_password,registration_enabled,registration_time,initial_load_enabled,initial_load_time,created_at_node_id) 
     values ('001','5d1c92bbacbe2edb9e1ca5dbb0e481',1,null,1,null,'000');

    insert into sym_router 
    (router_id,source_node_group_id,target_node_group_id,target_catalog_name,target_schema_name,target_table_name,USE_SOURCE_CATALOG_SCHEMA,router_type,create_time,last_update_time)
    values('primary_2_secondary-staging_prod-us', 'primary-staging_prod-us', 'secondary-staging_prod-us', 'DBSYNC_STAGING_PROD', 'dbo', null, 1,'default',GetDate(), GetDate());

    insert into sym_router 
    (router_id,source_node_group_id,target_node_group_id,target_catalog_name,target_schema_name,target_table_name,USE_SOURCE_CATALOG_SCHEMA,router_type,create_time,last_update_time)
    values('secondary_2_primary-staging_prod-us', 'secondary-staging_prod-us', 'primary-staging_prod-us', 'STAGING_PROD', 'dbo', null, 1,'default', GetDate(), GetDate());

    insert into sym_trigger 
    (trigger_id,source_catalog_name,source_schema_name, source_table_name, channel_id, sync_on_insert, sync_on_update, sync_on_delete, last_update_time,create_time, sync_on_incoming_batch)
    values('TriggerAll_2', null, 'dbo', 'AccessMaster', 'matter', 1 , 1, 1, GetDate(), GetDate(), 1);

    insert into sym_trigger_router (trigger_id,router_id,initial_load_order,last_update_time,create_time)
    values('TriggerAll_2','primary_2_secondary-staging_prod-us', 100, GetDate(),GetDate());

В сгенерированном для команды alter XML отсутствует имя целевой схемы.

    <database name="dataextractor" catalog="DBSYNC_STAGING_PROD" schema="dbo">
        <table name="Time_Entries">
            <column name="ID" primaryKey="true" required="true" type="INTEGER" size="10" autoIncrement="true">
                <platform-column name="mssql2008" type="int identity" size="10"/>
            </column>
            .
            .
            .
            .
            .
            <foreign-key name="FK__Time_Entr__TaskI__496CC0C1" foreignTable="Task" foreignTableCatalog="STAGING_PROD" foreignTableSchema="">
                <reference local="TaskID" foreign="ID"/>
            </foreign-key>

Инструмент работает нормально, если я использую опцию, чтобы отключитьвнешние ключи по всей базе данных.

    create.table.without.foreign.keys=true

С уважением

Раджат Агравал

...