여러 데이터베이스를 사용하는 Grails 애플리케이션을 개발 중입니다. 나머지는 읽기 전용이고 1은 앱의 "주 데이터베이스"종류입니다. 또한 여러 환경이 있습니다 : dev, qa, prod. qa는 릴리스 테스트에 사용되며 prod와 동일합니다.db1에서 db2로 테이블 구조 및 데이터를 덮어 쓰는 방법
항상 릴리스 테스트 전에 "기본"데이터베이스를 "기본"데이터베이스로 덮어 써야합니다. MS SQL 인스턴스를 실행하는 서버에 SQL 사용자 액세스 권한이 없습니다.
내가 원하는 것은 을 데이터베이스 자체를 삭제하지 않고 qa-database에 저장하고 prod-database에서 모든 것을 가져 오는 마법입니다. 데이터베이스에는 많은 외래 키 제약 조건이 있습니다.
위의 달성 방법은?
P.
나는 이것을 MySQL에서했지만 이제는 MS SQL로 마이그레이션했습니다. 내 MySQL의 스크립트는이 (의사)처럼 다소 간다 : 당신은 바로 T-SQL에서이 작업을 수행해서는 안
SET foreign_key_checks = 0;
-- Drop all tables..
SET foreign_key_checks = 1;
-- Import prod-dump to DB..
가능한 복제본 [SQL Server 2005 : 모든 테이블, 저장 프로 시저, 트리거, constriants 및 모든 종속성을 하나의 SQL 문에 삭제] (http://stackoverflow.com/questions/536350/sql-server-2005- 테이블 전체 - 저장 프로 시저 - 트리거 - 구성자 -a) –
@MichaelDurrant - 그는 모든 개체를 다시 만들려고하므로이 질문의 속임수가 아닙니다. – JNK