다음과 같은 문제가 자주 발생합니다.
데이터베이스에 새로운 테이블이나 열이 필요한 프로젝트의 일부 변경 작업을 하고 있습니다. 데이터베이스를 수정하고 작업을 계속합니다. 보통은 라이브 시스템에서 복제할 수 있도록 변경 사항을 기록해 두는 것을 잊지 않습니다. 하지만 변경한 내용이 항상 기억나지 않고 항상 기록하는 것을 기억하지 못합니다.
그래서 라이브 시스템으로 푸시하면 NewColumnX
가 없다는 크고 명백한 오류가 발생합니다.
이 상황에 대한 모범 사례가 아닐 수도 있다는 사실에도 불구하고 데이터베이스에 대한 버전 관리 시스템이 있습니까? 특정 데이터베이스 기술에는 관심이 없습니다. 그저 그런 것이 있는지 알고 싶을 뿐입니다. MS SQL Server에서 작동한다면 더할 나위 없이 좋겠죠.
루비 온 레일즈에는 데이터베이스를 변경하는 빠른 스크립트인 마이그레이션이라는 개념이 있습니다.
마이그레이션 파일에는 데이터베이스 버전을 늘리는 규칙(예: 열 추가)과 버전을 다운그레이드하는 규칙(예: 열 제거)이 포함되어 있습니다. 각 마이그레이션에는 번호가 매겨지며 테이블에서 현재 데이터베이스 버전을 추적합니다.
마이그레이션하려면 버전을 확인하고 필요한 스크립트를 적용하는
마이그레이션 스크립트 자체는 버전 관리 시스템에 보관되며, 데이터베이스를 변경할 때마다 새 스크립트를 체크인하면 모든 개발자가 이를 적용하여 로컬 데이터베이스를 최신 버전으로 가져올 수 있습니다.
다음 주 에 있을 때 데이터베이스 스키마 변경, 내가 처음 업데이트하십시오 project-database.sql 복사합니다를 관련 정보, 예를 들어 project-updates.sql 대한 변경 테이블 명령문입니다. 데이터베이스 개발, 테스트, 반복 비활성화합니다 업데이트뿐 적용하십시오 내가 잘 할 수 있습니다. 그런 다음, 다시 파일을 체크인합니다 적용하십시오 테스트 운영.
역시 내가 db 테이블의 경우 보통 다음과 같은 구성 - -
CREATE TABLE Config
(
cfg_tag VARCHAR(50),
cfg_value VARCHAR(100)
);
INSERT INTO Config(cfg_tag, cfg_value) VALUES
( 'db_version', '$Revision: $'),
( 'db_revision', '$Revision: $');
그럼 내가 다음 microprocessors 추가 업데이트
UPDATE Config SET cfg_value='$Revision: $' WHERE cfg_tag='db_revision';
이 때 변경된 '만' 가 '와' db_revision db_version 데이터베이스가 재작성할 거리를 db 가 끕니까 기준선까지의 나를 나타내는 것일 수 있습니다.
어떻게 할 수 있지만, 그들 스스로 선택했다고 계속 업데이트 파일을 별도로 자산을 모두 함께 및 사용, 푸십시오 cut& 붙여넣습니다 관련 단면에는. 즉, & # 39 는 조금 더 청소아줌마야 순서대로 제거하시겠습니까 :& # 39;; 개전판이 에서 $1.1$ 를 동결해야.
미바티스 (이전의 iBatis) 는 스키마에는 마이그레이션과), 툴 (tool) 에서 사용하기 위한 명령줄입니다. 자바 가상 머신 (jvm) 에 기록되어 있지만 모든 프로젝트를 함께 사용할 수 있습니다.
>. 우리가 할 수 있는 좋은 데이터베이스 관리 방식을 변경하십시오 식별했습니까 몇 가지 주요 목표. >. 이에 따라 마이그레이션과 미바티스 스키마에는 시스템 (또는 간단히 미바티스 마이그레이션과) 때문이다.
대표하는 에 제품 호출됨 SQL Source Control. 정보기술 (it), SVN, TFS 통합되므로 수르체저 금고로군, 금고로군 Pro), 머큐리얼, 소프트웨어 및 깃 (git).
그 친구는 없는 것 리키바제 오픈 소스 자바 기반의 도구를 사용할 수 있는 거의 모든 데이터베이스 jdbc 를 지원하는 합니다. Xml 스키마 변경 대신 루비를 실행하십시오 비해 레일 사용한다. 비록 내가 싫어하는 특정 언어를 어떻게 활용할 수 있는 xml 은 xml 도메인에 대한 매우 멋진 리키바제 계시나니 롤백합니다 같은 특정 작업을
<createTable tableName="USER">
<column name="firstname" type="varchar(255)"/>
</createTable>
Sql 문을 또는 데이터 임포트합니다 순결케 또한 지원됩니다.
Sql Server 힘들 경우, re you& # 39 를 사용하여 데이터) 를 꺾고 친구 (lc-fc 데이터베이스입니까 버전의 Visual Studio). 이 중 한 번 하고 간 비교하십시오 확보하십시오 멈춤으로 스키마에는 소스가 데이터베이스와 버전 운영 중인 버전니다 제어됩니다 쉬워졌습니다. 클릭 한 번으로 및 다른 DDL 너회의 생성할 수 있습니다.
내가 아는 사람이 할 수 없지만, 만약 DBMS_METADATA 정보 및 Toad for Oracle 데이터 친구 마련하지 어졌다면 생명요 약간만이라도 정말 사랑스러워요.
Oracle 패키지로의 DBMS_METADATA 살펴보겠습니다.
특히 다음과 같은 방법을 특히 유용하게 사용할 수:
dbms_metadata.get_ddl '-' dbms_metadata.set_transform_param '-' dbms_metadata.get_granted_ddl '-'
일단 익숙한 작동 원리 (예쁜 자체 설명) 에 그 결과를 덤프합니다 간단한 방법을 쓸 수 있습니다 스크립트입니다 에 넣을 수 있는 텍스트 파일을 소스 제어입니다. 굿 럭!
이 확실히 모르는 것이 있으면 쉽게 MSSQL.
오라클의 경우, 스키마를 여러 개의 개별 파일(예: 테이블당 하나의 파일)에 덤프할 수 있는 Toad를 사용합니다. Perforce에서 이 컬렉션을 관리하는 몇 가지 스크립트가 있지만, 거의 모든 수정본 관리 시스템에서 쉽게 수행할 수 있을 것이라고 생각합니다.
ER 스튜디오 를 사용하면 데이터베이스가 스키마에는 반전하려면 꽂으십시오 도구에서는 진실이며당신이 비교하여 라이브입니다 데이터베이스뿐 스왑할 수 있습니다.
예: 이를 통해 개발 스튜디오 - ER 에 비교하여 운영본 나열하십시오 역동기화 스키마에는 모든 차이를 보인다. 이를 통해 이를 자동으로 변경 사항을 스크립팅할 수 가공할지 누름식.
스키마 후에는 ER 에 저장하거나 독점 바이너리 형태로 저장할 수 있습니다 익스포트를 스크립트입니다 스튜디오, 저장한 버전 제어입니다. 이전 버전의 구성표가 돌아가고 싶은 적이 있다면, 그냥 체크아웃합니다 데이터베이스에구성원을 db 및 밉니다 플랫폼.
자동화 도구 없이 (참조 데이터에 대한 여기 저기 기타 의견) 을 사용하여 파일을 직접 you& # 39, 스크립트 및 DDL 될 겁니다. 외곽진입 선택, 문서 정보기술 (it), 그것을 따르지 됩니다. I like 능력을 갖춤으로써 재작성할 데이터베이스입니까 주어진 상황에서 그래서 내가 갖고 있는 것으로 전체 DDL 익스포트를 포지셔닝하십시오 전체 데이터베이스 (I& 경우 # 39 m, DBA) 또는 개발자 스키마 (# 39 만 I& 경우, 제품 개발 모드).
플스크라 에서 자동화 도구 (대표 용 플러그인을 사용할 수 있는 모든 아로런드 있다 (단, 멋지구리해요) 와 인텔®visual 소스 금고에도요 리포지토리를 확인
>. 웹에서: > >, PL / SQL 개발자 버전 컨트롤 플러그-인이 간의 긴밀한 통합, 제공하는 IDE > > 모든 버전 관리 시스템, 마이크로소프트, 그리고 SCC 인터페이스입니다 敲阀汽俊 汲摹窍妨绰 사양명세. >, >, 여기에는 Microsoft Visual SourceSafe, 버전 관리 시스템을 가장 인기 있는 등, Merant PVCS > >, MKS 와 소스 무결성입니다.
[Microsoft SQL Server 데이터 도구] 사용할 수 있습니다 (http://msdn.microsoft.com/en-gb/data/tools.aspx) 의 일부로 데이터베이스 객체를 생성하는 데 비주얼 스튜디오에서 스크립트에만 SQL Server 를 부활시켰다. 그런 다음 스크립트를 사용하여 제어할 수 있는 통합 제어 기능이 내장되어 있어 추가 소스 소스 비주얼 스튜디오. 또한 SQL Server 구축 프로젝트를 통해 데이터베이스 객체 생성 스크립트를 사용하여 확인한 업데이트하려면 컴파일러 및 기존 데이터베이스 또는 새로 생성합니다.
스키마 변경) 의 oracle database for oracle 은 도구에서는 마이그레이션하려면 비교하십시오 특별히 다른. 아래 url 을 merant. 다운로드 링크를 위한 소프트웨어를 사용할 수 있는 전기능 평가판의 이용할 수 있게 된다.
http://www.red-gate.com/Products/schema_compare_for_oracle/index.htm
다른 DDL 어낼러시스 것이 더 감사 (은 Oracle). 모든 변경 할 수 있는 테이블을 발생하게 됩니다. 마지막으로 이동할 경우 데이터베이스에 대한 변경 사항을 쿼리합니다 타임스탬프와 변경되는지 prod 순서화된 수행한 모든 목록니다 당장 연락할 수 있습니다. Where 절 테이블 만들기 등 몇 가지 않도록 제로섬 변경으로부터 foo. 뒤에 드롭합니다 테이블 foo. 또한 쉽게 구축하십시오 모드용 스크립트입니다. Wiki, 그게 왜 계속 변화를 연산뿐 작업. 이제 그들을 데이터베이스입니까 추적되도록 당신꺼에요.