sql DDL, созданный разработчиком модели данных, включает изменения, уже внесенные в базу данных - PullRequest
4 голосов
/ 14 февраля 2020

с использованием средства моделирования данных, встроенного в sql Developer 19.4, против базы данных oracle 12 c.

Я добавил пару внешних ключей в диаграмму ERD моделирующего устройства данных, затем щелкнул "syncrhonize" модельер данных с моделью "; затем я заметил, что в сгенерированном DDL, отличном от моих законных изменений, DDL содержат также другие SQL относительно изменений, уже существующих в базе данных; В любом случае я изменил DDL, удалив нежелательные изменения, применил и зафиксировал свои изменения. затем я снова запускаю то же сравнение, и в окне «Сравнение моделей» правильно не отображаются никакие изменения, но ... в DDL уже применены те же изменения, что и в базе данных.

Я также отменил сравнение, сравнивая модель с erd и hit "merge", думая, что это проблема с какой-то ограниченной памятью и т. д. c .., но та же проблема здесь: представление "Compare Models" действительно показывает не chaages, но DDL содержит изменения ??

enter image description here

и ниже DDL со сценарием изменений, который уже существует в базе данных.

ALTER TABLE gasgendev.audit_errors
    ADD CONSTRAINT audit_errors_look_audit_types_fk FOREIGN KEY ( audit_type )
        REFERENCES gasgendev.look_audit_types ( audit_type_id )
            ON DELETE CASCADE
    NOT DEFERRABLE ENABLE VALIDATE;

ALTER TABLE gasgendev.audit_logs
    ADD CONSTRAINT audit_logs_look_audit_types_fk FOREIGN KEY ( audit_type )
        REFERENCES gasgendev.look_audit_types ( audit_type_id )
            ON DELETE CASCADE
    NOT DEFERRABLE ENABLE VALIDATE;

ALTER TABLE gasgendev.halo_inputs
    ADD CONSTRAINT halo_inputs_look_assets_fk FOREIGN KEY ( look_assets_l_asset_id )
        REFERENCES gasgendev.look_assets ( l_asset_id )
            ON DELETE CASCADE
    NOT DEFERRABLE ENABLE VALIDATE;

ALTER TABLE gasgendev.halo_inputs
    ADD CONSTRAINT halo_inputs_look_datasets_fk FOREIGN KEY ( dataset_id )
        REFERENCES gasgendev.look_datasets ( l_dataset_id )
            ON DELETE CASCADE
    NOT DEFERRABLE ENABLE VALIDATE;

ALTER TABLE gasgendev.manual_inputs
    ADD CONSTRAINT manual_inputs_look_manual_inputs_fk FOREIGN KEY ( look_manual_inputs_look_manual_input_id )
        REFERENCES gasgendev.look_manual_inputs ( look_manual_input_id )
            ON DELETE CASCADE
    NOT DEFERRABLE ENABLE VALIDATE;

ALTER TABLE gasgendev.manual_inputs
    ADD CONSTRAINT manual_inputs_look_datasets_fk FOREIGN KEY ( dataset_id )
        REFERENCES gasgendev.look_datasets ( l_dataset_id )
            ON DELETE CASCADE
    NOT DEFERRABLE ENABLE VALIDATE;

Конечно если я запускаю этот скрипт в SQL разработчику, я получаю сообщения об ошибках, которые уже существуют.

Может кто-нибудь сказать мне, что я делаю здесь неправильно?

1 Ответ

1 голос
/ 25 февраля 2020

Эта ошибка означает, что либо ваш Data Modeller, либо ваш SQL Dev устарели, из-за чего они не сотрудничают. Ограничения есть, но ваш DM их не распознает. Обновите свою систему, и если это не сработает, переустановите каждую из них вручную. Я видел это однажды, и это было не красиво. Надеюсь, это решит вашу проблему!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...