Инструменты для создания «тестовой» среды в базе данных разработки - PullRequest
1 голос
/ 05 октября 2010

У нас есть производственная база данных 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, но мне сказали, что "это не в бюджете", чтобы сделать это.

Ответы [ 2 ]

3 голосов
/ 06 октября 2010

Не делайте этого. Настройте отдельные базы данных QA и Development. То, что вы хотите, просто не стоит хлопот.

1 голос
/ 06 октября 2010

Немного, но будет ли опция impdp REMAP_SCHEMA обрабатывать внешние ключи в других схемах? Я знаю, что есть некоторые вещи, с которыми он не пытается справиться, но не помню, чтобы этот сценарий упоминался - возможно, только потому, что он необычен.

Потенциально вы можете сделать одну expdp из всех схем, и impdp переназначить их все на QA_APP_OWNER за один раз. Понятно, что это не то, что я когда-либо пробовал ...

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