Я пытаюсь протестировать ActiveRecord модель, но тесты валятся изза того, что на таблицу этой модели в базе данных уже ссылается другая таблица. Как удалось выяснить происходит следующее: При инициализации фикстуры SQL запрос отключает ограничения целостности, очищает данные таблицы в которую должны залится данные фикстуры, и потом включает ограничения целостности обратно. На этом моменте выполнение тестов заваливается
Прикладываю код запроса который отправляет codeception.
Код: Выделить всё
ALTER SESSION SET
NLS_TIMESTAMP_FORMAT = 'dd.mm.yyyy hh24:mi:ss'
NLS_DATE_FORMAT = 'dd.mm.yyyy'
NLS_TIMESTAMP_TZ_FORMAT = 'dd.mm.yyyy hh24:mi:ss'
NLS_DATE_LANGUAGE = 'RUSSIAN'
NLS_TERRITORY = 'RUSSIA'
BEGIN
FOR c IN
(SELECT c.owner, c.table_name, c.constraint_name
FROM user_constraints c, user_tables t
WHERE c.table_name = t.table_name
AND c.status = 'ENABLED'
AND c.constraint_type = 'R'
ORDER BY c.constraint_type)
LOOP
DBMS_UTILITY.exec_ddl_statement('alter table "' || c.owner || '"."' || c.table_name || '" disable constraint ' || c.constraint_name);
END LOOP;
END;
DELETE FROM "SOME_TABLE"DROP SEQUENCE "SEQ_SOME_TABLE_ID"CREATE SEQUENCE "SEQ_SOME_TABLE_ID" START WITH 1 INCREMENT BY 1 NOMAXVALUE NOCACHE
BEGIN
FOR c IN
(SELECT c.owner, c.table_name, c.constraint_name
FROM user_constraints c, user_tables t
WHERE c.table_name = t.table_name
AND c.status = 'DISABLED'
AND c.constraint_type = 'R'
ORDER BY c.constraint_type)
LOOP
DBMS_UTILITY.exec_ddl_statement('alter table "' || c.owner || '"."' || c.table_name || '" enable constraint ' || c.constraint_name);
END LOOP;
END;