Отключить внешний ключ в тесте dbunit

Я использую dbunit 2.5.4 с junit 4, Java 8 и Oracle db (11 что-то). Я успешно загрузил свою тестовую базу данных в плоский файл (xml), следуя онлайн-учебникам. Теперь я хочу сделать CLEAN_INSERT, но я получаю исключение CyclicTablesDependencyException. Похоже, решение состоит в том, чтобы отключить проверку внешнего ключа, но я не уверен, как это сделать. Как я могу отключить проверку внешних ключей в моем тесте dbunit, когда я делаю clean_insert?

1 ответ

Попробуйте отключить useSequenceFiltering: useSequenceFiltering = false

Я не знаю, что все это (вплоть до "Оракула") (да, я знаю, Google - мой друг, но только если я его использую).

Однако, если вы хотите переместить эту "тестовую БД" (действительно ли это база данных? Или это схема? Я полагаю, что второе, но - даже если это первое, нет проблем), я бы предложил вам использовать

  • Экспорт данных (и импорт) или
  • оригинальные утилиты EXP (и IMP)

Первый более мощный, но EXP & IMP несколько проще в использовании (не требуется доступ к серверу БД, вам не нужно создавать каталог (объект Oracle), файл DMP находится на вашем компьютере).

Какова выгода от экспорта / импорта? В вашем случае Oracle позаботится об ограничениях. Кроме того, вы по умолчанию экспортировали бы все объекты (таблицы, представления, процедуры, триггеры, пакеты, последовательности, ... - все). Я бы посоветовал вам взглянуть на это.

Документация, как обычно, на OTN (выберите 11-ю версию, хотя - для таких простых требований - подойдет любая версия).

Вот небольшая демонстрация: я экспортирую объекты MIKE (их не так много) и импортирую в схему SCOTT.

M:\>exp mike/lion@orcl file=mike.dmp

Export: Release 11.2.0.2.0 - Production on Uto Tra 10 07:11:42 2018

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Tes
Export done in EE8MSWIN1250 character set and AL16UTF16 NCHAR character set
. exporting pre-schema procedural objects and actions
. exporting foreign function library names for user MIKE
. exporting PUBLIC type synonyms
. exporting private type synonyms
. exporting object type definitions for user MIKE
About to export MIKE's objects ...
. exporting database links
. exporting sequence numbers
. exporting cluster definitions
. about to export MIKE's tables via Conventional Path ...
. . exporting table                           DEPT          4 rows exported
. exporting synonyms
. exporting views
. exporting stored procedures
. exporting operators
. exporting referential integrity constraints
. exporting triggers
. exporting indextypes
. exporting bitmap, functional and extensible indexes
. exporting posttables actions
. exporting materialized views
. exporting snapshot logs
. exporting job queues
. exporting refresh groups and children
. exporting dimensions
. exporting post-schema procedural objects and actions
. exporting statistics
Export terminated successfully without warnings.

M:\>imp scott/tiger@orcl file=mike.dmp full=y

Import: Release 11.2.0.2.0 - Production on Uto Tra 10 07:13:51 2018

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Tes

Export file created by EXPORT:V11.02.00 via conventional path

Warning: the objects were exported by MIKE, not by you

import done in EE8MSWIN1250 character set and AL16UTF16 NCHAR character set
. importing MIKE's objects into SCOTT
. . importing table                         "DEPT"          4 rows imported
Import terminated successfully without warnings.

M:\>
Другие вопросы по тегам