복붙노트

[SQL] 어떻게 당신이 버전의 데이터베이스 스키마를합니까? [닫은]

SQL

어떻게 당신이 버전의 데이터베이스 스키마를합니까? [닫은]

어떻게 당신의 SQL 델타을 준비합니까? 델타 폴더에 각 스키마 변경 SQL 저장 수동으로 작업을 수행하거나 자동화 된 diffing의 프로세스의 어떤 종류가 있습니까?

나는 소스 코드와 함께 데이터베이스 스키마를 버전 관리 규칙에 관심이 있어요. 아마도 스키마를 차이점 훅을 사전은 커밋?

또한, 델타 diffing의 어떤 옵션 DbDeploy 제외하고 존재 하는가?

편집 : 내가 델타를 사용하여 데이터베이스 마이그레이션을 실행하기위한 표준 방식에 익숙 명확히하고자하는 답변을보고. 내 질문은 바람직하게는 자동으로 자신을 델타를 만드는 방법에 대한 것입니다.

이 차이가 있는지 또한, 버전은 PHP와 MySQL을위한 것입니다. (아니 루비 솔루션을하시기 바랍니다).

해결법

  1. ==============================

    1.보다

    보다

    데이터베이스 구조 변경에 대한 버전 관리 시스템이 있습니까?

    어떻게 버전은 SVN 내 MS SQL 데이터베이스합니까?

    제프의 ​​기사

    버전 제어에서 데이터베이스를 가져옵니다

    나는 당신의 고통을 느끼고, 더 좋은 응답이 있었다 바랍니다. 이것은 당신이 찾고 있던 무슨에 가까운 수 있습니다.

    DB 스키마 변경을 추적하기위한 메커니즘

    일반적으로,이에 더 적절한, 허용 솔루션이없는 느낌, 나는이 분야에서 내 자신의 롤.

  2. ==============================

    2.당신은 다른 봐, 유사한 스레드 걸릴 수 있습니다 : SVN에서 어떻게 내가 버전 내 MS SQL 데이터베이스를?

    당신은 다른 봐, 유사한 스레드 걸릴 수 있습니다 : SVN에서 어떻게 내가 버전 내 MS SQL 데이터베이스를?

  3. ==============================

    3.당신은 여전히 ​​옵션을 찾는 경우 : neXtep 디자이너를 보라. 이 버전 관리의 개념을 기반으로 무료로 GPL 데이터베이스 개발 환경입니다. 환경에서 당신은 항상 버전 단체와 함께 작동 및 데이터 모델 개발에 집중할 수 있습니다. 릴리스가 완료되면, SQL 생성 엔진은 두 버전 사이에 필요한 모든 델타를 생성 할 수있는 버전 관리 시스템에 연결하고, 당신이 필요로하는 경우에 당신에게 전달 메커니즘을 제공합니다.

    당신은 여전히 ​​옵션을 찾는 경우 : neXtep 디자이너를 보라. 이 버전 관리의 개념을 기반으로 무료로 GPL 데이터베이스 개발 환경입니다. 환경에서 당신은 항상 버전 단체와 함께 작동 및 데이터 모델 개발에 집중할 수 있습니다. 릴리스가 완료되면, SQL 생성 엔진은 두 버전 사이에 필요한 모든 델타를 생성 할 수있는 버전 관리 시스템에 연결하고, 당신이 필요로하는 경우에 당신에게 전달 메커니즘을 제공합니다.

    쿼리 데이터베이스 통합 SQL 클라이언트를 사용하는 등 데이터 모델 다이어그램을 만들고, 무엇보다도, 당신은 동기화 할 수 있습니다 및 역 개발 중에 데이터베이스를 동기화

    자세한 내용은 위키에서보세요 : http://www.nextep-softwares.com/wiki

    그것은 현재 오라클, MySQL과 PostgreSQL을 지원하고 제품은 윈도우, 리눅스 및 Mac에서 실행되도록 자바입니다.

  4. ==============================

    4.나는 확실히 스키마 변경은 항상 첨가제 것을 확인하십시오. 그 데이터를 보내 겠 것입니다 나중에 롤백 할 수 없기 때문에 그래서, 열 및 테이블을 드롭하지 않습니다. 데이터베이스를 사용하는 코드는 데이터 나 기능의 손실없이 롤백 할 수있는이 방법.

    나는 확실히 스키마 변경은 항상 첨가제 것을 확인하십시오. 그 데이터를 보내 겠 것입니다 나중에 롤백 할 수 없기 때문에 그래서, 열 및 테이블을 드롭하지 않습니다. 데이터베이스를 사용하는 코드는 데이터 나 기능의 손실없이 롤백 할 수있는이 방법.

    나는 그들이 아직 존재하지 않는 경우 테이블과 열을 만듭니다 문을 포함하고 데이터로 채 웁니다 마이그레이션 스크립트가 있습니다.

    이주 스크립트는 생산 코드가 업데이트 될 때마다 실행되며, 새로 설치할 후.

    내가 뭔가를 삭제하고자 할 때, 나는 스크립트와이되지 않는 스키마 요소가 점차 새로 설치할에 단계적으로 할 수 있도록 마이그레이션 스크립트를 설치 데이터베이스에서 제거하여 해. 단점으로 새로 설치할은 설치하기 전에 이전 버전으로 다운 그레이드 할 수 없습니다.

    물론 데이터베이스에 결코 직접적으로 이러한 스크립트를 통해 DDLs를 실행의 동기화에 물건을 유지합니다.

  5. ==============================

    5.나는 델타를 관리하지 않습니다. 나는 마스터 데이터베이스에 변경하고 마스터 데이터베이스를 기반으로 XML 기반의 빌드 스크립트를 생성하는 도구를 가지고있다.

    나는 델타를 관리하지 않습니다. 나는 마스터 데이터베이스에 변경하고 마스터 데이터베이스를 기반으로 XML 기반의 빌드 스크립트를 생성하는 도구를 가지고있다.

    그것은 기존의 데이터베이스를 업그레이드하는 시간이 올 때 나는 새로운 데이터베이스와 맨 테이블을 생성하기 위해 XML 기반의 빌드 스크립트를 사용하는 프로그램이 있습니다. 그때 나는 Y FROM INSERT INTO를 사용하여 이전 데이터베이스를 통해 SELECT의 데이터를 x를 복사 한 다음 모든 인덱스, 제약 조건 및 트리거를 적용합니다.

    새 테이블, 새 열은 열이 모두 자동으로 처리 내가 열 이름 바꾸기, 열 유형 변경 및 기타 기본 리팩토링을 처리 할 수있는 복사 루틴을 조정하는 몇 가지 작은 트릭 얻을 삭제.

    나는 엄청난 양의 데이터와 데이터베이스에이 솔루션을 권하고 싶지 않다 그러나 나는 정기적으로 400 개 테이블 1기가바이트 이상 데이터베이스를 업데이트합니다.

  6. ==============================

    6.당신은 당신이 사용하고있는 RDBMS 어떤 언급하지 않았지만 그것의 MS SQL 서버, 비교 레드 게이트의 SQL 객체 작성 스크립트 사이의 델타를 만들어 우리에게 필수 불가결 한 경우.

    당신은 당신이 사용하고있는 RDBMS 어떤 언급하지 않았지만 그것의 MS SQL 서버, 비교 레드 게이트의 SQL 객체 작성 스크립트 사이의 델타를 만들어 우리에게 필수 불가결 한 경우.

  7. ==============================

    7.난 내 자신의 나팔을 불다 하나를 모르겠지만, 데이터베이스 스키마에 대한 변경 사항을 추적하고 버전 업데이트 스크립트를 만들 수있는 내부 웹 응용 프로그램을 개발했습니다.

    난 내 자신의 나팔을 불다 하나를 모르겠지만, 데이터베이스 스키마에 대한 변경 사항을 추적하고 버전 업데이트 스크립트를 만들 수있는 내부 웹 응용 프로그램을 개발했습니다.

    이 도구는 브라질라는 지금은 MIT 라이센스 아래 오픈 소스입니다. 브라질은 루비 / 루비 데이터베이스에 기반 레일 및 지원 변경 배포에 대한 그 루비 DBI 지원 (MySQL은, ODBC, 오라클, 포스트 그레스, SQLite는가).

    버전 제어에 업데이트 스크립트를 넣어 지원 예정입니다.

  8. ==============================

    8.http://bitbucket.org/idler/mmp - PHP에서 writed MySQL의에 대한 스키마 버전 관리 도구,

    http://bitbucket.org/idler/mmp - PHP에서 writed MySQL의에 대한 스키마 버전 관리 도구,

  9. ==============================

    9.우리는 다음 새 스키마로 가져 오기, (우리의 툴 체인을 사용하여) 휴대용 형식으로 데이터를 내보내는 것입니다. 델타 SQL에 대한 필요가 없습니다. 추천.

    우리는 다음 새 스키마로 가져 오기, (우리의 툴 체인을 사용하여) 휴대용 형식으로 데이터를 내보내는 것입니다. 델타 SQL에 대한 필요가 없습니다. 추천.

  10. ==============================

    10.나는 대부분의 개발을위한 파이어 버드 데이터베이스를 사용하고 난 그것을 위해 FlameRobin 관리 도구를 사용합니다. 그것은 모든 변경 사항을 기록 할 수있는 좋은 옵션이 있습니다. 그것은 하나 개의 큰 파일에 모든 로그 또는 데이터베이스 변경 당 하나 개의 파일 수 있습니다. 나는이 두 번째 옵션을 사용하고 난 버전 제어 소프트웨어의 각 스크립트를 저장 - 이전에 내가 Subversion은 지금은 힘내를 사용, 사용.

    나는 대부분의 개발을위한 파이어 버드 데이터베이스를 사용하고 난 그것을 위해 FlameRobin 관리 도구를 사용합니다. 그것은 모든 변경 사항을 기록 할 수있는 좋은 옵션이 있습니다. 그것은 하나 개의 큰 파일에 모든 로그 또는 데이터베이스 변경 당 하나 개의 파일 수 있습니다. 나는이 두 번째 옵션을 사용하고 난 버전 제어 소프트웨어의 각 스크립트를 저장 - 이전에 내가 Subversion은 지금은 힘내를 사용, 사용.

    난 당신이 FlameRobin은 파이어 버드의 경우와 같이 동일한 로깅 기능이 일부 MySQL의 도구를 찾을 수 있습니다 가정합니다.

    내가 쉽게 데이터베이스를 업그레이드 할 수 있도록 데이터베이스의 테이블 중 하나에서, 나는 데이터베이스 구조의 버전 번호를 저장합니다. 나는 또한 그 SQL 스크립트를 어떤 대상 데이터베이스에 하나씩 (데이터베이스 경로 및 사용자 이름 / 암호 명령 행에 제공된다)를 실행하는 간단한 PHP 스크립트를 썼습니다.

    이 문 (삭제를 삽입, 업데이트) 모든 DML을 기록 할 수있는 옵션도, 그리고 각 데이터베이스에 포함 된 몇 가지 '기본'데이터를 수정하는 동안이를 활성화합니다.

    나는 세부에있는 모든이 작업을 수행하는 방법에 좋은 백서를 썼다. 당신은 여기에서 데모 PHP 스크립트와 함께 .pdf 형식의 용지를 다운로드 할 수 있습니다.

  11. ==============================

    11.또한 개발자가 중앙 저장소에 자신의 deltasql 스크립트를 제출할 수 PHP 스크립트의 집합을 개발했다.

    또한 개발자가 중앙 저장소에 자신의 deltasql 스크립트를 제출할 수 PHP 스크립트의 집합을 개발했다.

    이클립스를위한 목적에서 개발 된 웹 인터페이스 또는 클라이언트를 사용하여 쉽게 데이터베이스를 업그레이드 할 수 있도록 데이터베이스 테이블 (라고 TBSYNCHRONIZE) 중 하나, 나는, 최신 실행 스크립트의 버전 번호를 저장합니다.

    웹 인터페이스는 여러 프로젝트를 관리 할 수 ​​있습니다. 그것은 "가지"또한 데이터베이스를 지원합니다.

    (당신이 암호 testdbsync에 관리자로 로그인 한 경우) http://www.gpu-grid.net/deltasql에서 응용 프로그램을 테스트 할 수 있습니다. 이 응용 프로그램은 오픈 소스이며, 여기에서 다운로드 할 수 있습니다 : http://sourceforge.net/projects/deltasql

    deltasql 스위스, 인도에서 생산적으로 사용하고, 일본에서 인기가있다.

  12. ==============================

    12.나는 전에 몇 달은 MySQL의 스키마를 버전 관리 도구를 검색합니다. 나는 교리 마이그레이션, RoR에 마이그레이션, 자바와 파이썬에서 writen 몇 가지 도구와 같은 많은 유용한 도구를 발견했다.

    나는 전에 몇 달은 MySQL의 스키마를 버전 관리 도구를 검색합니다. 나는 교리 마이그레이션, RoR에 마이그레이션, 자바와 파이썬에서 writen 몇 가지 도구와 같은 많은 유용한 도구를 발견했다.

    그러나 그들 중 아무도 나의 요구 사항을 만족하지 않았다.

    내 요구 사항 :

    내 마이그레이션 도구를 쓰기 시작하고, 오늘은 베타 버전이있다.

    이 주제에 관심이있는 경우, 그것을 시도하십시오. 나에게 미래의 요청과 버그 리포트를 보내주십시오.

    소스 코드 : bitbucket.org/idler/mmp/src 영어 개요 : bitbucket.org/idler/mmp/wiki/Home 러시아어 개요 : antonoff.info/development/mysql-migration-with-php-project

  13. ==============================

    13.나는 http://code.google.com/p/oracle-ddl2svn/ 사용

    나는 http://code.google.com/p/oracle-ddl2svn/ 사용

  14. ==============================

    14.나도이 주제에 관심이 있어요.

    나도이 주제에 관심이 있어요.

    장고 위키에서이 주제에 대한 몇 가지 논의가있다.

    흥미롭게도,이 CakePHP의 스키마 버전을 가지고처럼 보이는 내장 명령을 생성 스키마 단지 케이크를 사용.

  15. ==============================

    15.때 나는 새로운 DB에 착륙 :

    때 나는 새로운 DB에 착륙 :

    첫째, 나는 구조를 확인 :

    제 2 단계에서, I는 mysqldiff 함께 테이블에 datas 테이블을 확인한다. 그것은 조금 구식이지만 INFORMATION_SCHEMA의 datas를 기반으로 PHP는 루프가 확실하게 일을의

    버전 관리를 위해, 나는 같은 방법을 사용하지만 난 DIFF 결과 (업그레이드 또는 롤백)는 SQL 업데이트 스크립트를 포맷하고 나는 (몇 가지 수정을 IP 주소와 같은 버전 번호 모양) 버전 번호 규칙을 사용합니다.

    initial version : 1.0.0
                      ^ ^ ^
                      | | |
    structure change: - | |
    datas added: -------- |
    datas updated: --------
    
  16. ==============================

    16.나는 (별도의 테이블에서 추적) 데이터베이스 스키마의 엄격한 버전을 사용하고 있습니다. 스크립트 버전 제어에 저장되어 있지만, 그들은 모두 변경하기 전에 현재의 스키마 버전을 확인합니다.

    나는 (별도의 테이블에서 추적) 데이터베이스 스키마의 엄격한 버전을 사용하고 있습니다. 스크립트 버전 제어에 저장되어 있지만, 그들은 모두 변경하기 전에 현재의 스키마 버전을 확인합니다.

    여기에 SQL 서버의 전체 구현 (필요한 경우 동일한 솔루션이 MySQL을 위해 개발 될 수있다)이다 : SQL Server 데이터베이스 스키마 버전을 유지하는 방법

  17. ==============================

    17.긴 조사 후, 나는 몇 가지 타사 도구 또는 Visual Studio 프로젝트 유형 나를 만족하지 않거나 이론하지만 구현에 대한 단지 블로그가 있다는 것을 알아 냈다. 그래서 나는 거의 일년을 사용하는 작업 시스템을 구현하고, 여기에서 설명 :

    긴 조사 후, 나는 몇 가지 타사 도구 또는 Visual Studio 프로젝트 유형 나를 만족하지 않거나 이론하지만 구현에 대한 단지 블로그가 있다는 것을 알아 냈다. 그래서 나는 거의 일년을 사용하는 작업 시스템을 구현하고, 여기에서 설명 :

    http://nalgorithm.com/2015/11/09/database-versioning-part-1/

    관심에 따라 더 쓰는 것입니다.

  18. from https://stackoverflow.com/questions/175451/how-do-you-version-your-database-schema by cc-by-sa and MIT license