Отключить внешний ключ в тесте 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:\>