Я занимаюсь разработкой Grails-приложения, которое использует несколько баз данных, другие предназначены только для чтения, а 1 является своего рода "основной базой данных". Кроме того, существует несколько сред: dev, qa, prod. qa используется для тестирования релизов и идентичен prod.
Всегда перед тестированием релиза мне нужно перезаписать "основную" базу данных qa на "основную" базу данных prod. У меня нет доступа к серверу, на котором работает экземпляр MS SQL, кроме доступа пользователя SQL.
Мне нужна магия, которая удаляет все в базе данных qa, не удаляя саму базу данных и импортируя все из базы данных prod. Базы данных содержат множество ограничений внешнего ключа.
Как добиться вышеупомянутого?
P.S.
Я сделал это на MySQL, но теперь мы перешли на MS SQL. Мой MySQL-скрипт выглядит примерно так (псевдо):
SET foreign_key_checks = 0;
-- Drop all tables..
SET foreign_key_checks = 1;
-- Import prod-dump to DB..