У нас есть производственная база данных Oracle Enterprise и еще один экземпляр, который мы используем в качестве базы данных QA и разработки.QA попросил предоставить им отдельные схемы в базе данных, чтобы они могли тестировать приложения изолированно от изменений, сделанных разработчиками.Например, скажем, схема, используемая в разработке, и схема, которая будет использоваться в производстве, называется APP_OWNER, а APP_OWNER может содержать таблицы, которые имеют ссылки FK на таблицы в других схемах, например, в BASE_OWNER.Идея состоит в том, чтобы создать схему QA_APP_OWNER и перетащить производственные данные в эту схему, а также извлечь любые таблицы BASE_OWNER, на которые есть ссылки в схеме QA_APP_OWNER.Упрощенная иллюстрация будет выглядеть следующим образом:
Prod Setup:
----------------
BASE_OWNER.users
APP_OWNER.users (synonym to BASE_OWNER.users)
APP_OWNER.audit_users with FK to BASE_OWNER.users
QA Setup:
----------------
QA_APP_OWNER.users (copied data from prod)
QA_APP_OWNER.audit_users (FK to APP_OWNER.users)
Это должно быть возможно, поскольку мы не пишем код / SQL, включая схемы.(т.е. мы создаем синонимы на основе схемы для таблиц вне схемы, в которой выполняется приложение)
Мой вопрос: есть ли хорошие инструменты для простого создания такой схемы QA_APP_OWNER?Я знаю об опциях экспорта FROMUSER TOUSER, но если я правильно помню, это переместит всю схему в другую, но не приведет меня туда, где я хочу быть, потому что мне нужно изменитьссылки на ФК.Мне не известен способ экспорта DDL, изменения его вручную, а затем импорта данных вручную.Это не является привлекательным вариантом, так как многие ссылки на таблицы, которые также ссылаются на другие таблицы, а схема APP_OWNER имеет множество таблиц.Я боюсь, что чем больше ручного управления, тем больше вероятность ошибки, которая может привести к тому, что что-то тестируемое сломается при перемещении в производственную среду.Хорошим решением было бы иметь лицензии как для Oracle, так и для экземпляра Oracle, но мне сказали, что "это не в бюджете", чтобы сделать это.