2008-11-01 7 views
39

두 데이터베이스를 동기화하는 응용 프로그램을 알고 있습니까? 개발 중에 때때로 하나 또는 두 개의 테이블 행이나 새 테이블 또는 열을 추가해야합니다. 일반적으로 일부 파일에 모든 sql 문을 작성하고 업로딩 경로 중에 프로덕션 데이터베이스 (이전 백업)에 해당 행을 evecute합니다. mySQL 및 postreSQL 데이터베이스를 사용합니다.개발 및 프로덕션 데이터베이스를 동기화하는 방법

귀하의 실습은 무엇이며 어떤 응용 프로그램이 도움이됩니까?

+0

나는 현상금을 추가했습니다. MySQL 데이터베이스에서 작동하려면이 기능이 필요합니다. 그게 중요하다면 나는 Typo3와 함께 일하고있다. – demonkoryu

+0

그리고 저렴한 비용이어야합니다. :) – demonkoryu

답변

5

아래쪽에만 추가하는 스크립트 (물론 소스 제어하에 있음)가 있습니다. 프로덕션 데이터베이스에서 일반 데 이터베이스로 복원하면 황금이어야합니다. 당신이 그것에 관하여 엄격하면, 이것은 아주 잘 작동합니다.

그렇지 않으면 많은 사람들이 SQLServer 용으로 redgate를 사용한다는 것을 알고 있습니다.

0

Siebel (CRM, Sales 등 관리 제품)에는 프로덕션 데이터베이스를 개발 용 데이터베이스 (dev2prod)와 정렬하는 도구가 내장되어 있습니다.

그렇지 않으면 수동으로 실행되는 스크립트를 고수해야합니다.

0

Navicat에는이를 처리하는 구조 동기화 마법사가 있습니다.

6

PostgreSQL의 경우 Another PostgreSQL Diff Tool을 사용할 수 있습니다. 그것은 두 개의 SQL 덤프를 매우 빠르게 비교할 수 있습니다 (약 300 개의 테이블, 50 개의 뷰 및 500 개의 저장 프로 시저가있는 db에서 몇 초간). 따라서 변경 사항을 쉽게 찾을 수 있고 실행할 수있는 SQL diff를 얻을 수 있습니다. APGDiff 페이지에서

:

또 다른 PostgreSQL의 DIFF 도구는 스키마 업그레이드하는 데 유용합니다 간단한의 PostgreSQL은 diff 도구입니다. 이 도구는 두 개의 스키마 덤프 파일을 비교하여 이전 스키마의 업그레이드에 적합한 출력 파일을 만듭니다 (수작업으로 수정 한 후).

5

레드 게이트 SQL에 대한 또 다른 투표는 비교

http://www.red-gate.com/products/SQL_Compare/index.htm

이없이 살고 싶지 않을 것이다!

편집 : 죄송합니다, 이것은 SQL Server 전용입니다. 아직도 - 어떤 SQL Server 사용자가 동일한 질문을 가지고 있다면이 도구를 꼭 사용하는 것이 좋습니다.

+1

이것은 최근에 출시 된 레드 게이트 도구입니다 : http://mysql-compare.com/ –

0

Hibernate을 사용하여이 문제를 해결했습니다. 그것은 누락 된 테이블, 컬럼 등을 탐지하고 자동 생성 할 수 있습니다.

1

나는 정말로 EMS tools을 좋아합니다.

모든 인기있는 DB에 사용할 수있는 도구가 있으며 모든 유형의 DB에 대해 동일한 사용자 환경을 제공합니다.

도구 중 하나는 DB 비교기입니다.

2

개발 데이터베이스 (CREATE, ALTER 및 DROP와 같은 일련의 DDL 명령)에 대한 SQL 문을 작성하는 경우 테이블에 기록하여이를 추적해야하는 이유는 무엇입니까? "버전"색인이 있습니까?그런 다음에 수있을 것입니다 :

  1. 이 버전이
  2. 데이터베이스에 기록 된 명령을 전송하여 프로덕션 데이터베이스의 "자동"갱신을 허용하는 작은 루틴을 변경 한 추적 할 수 있습니다.
+0

이것은 기본적으로 데이터베이스 버전 관리이지만 자체 구현되었습니다. 좋은 방법이지만 기존 도구를 사용하는 것이 좋습니다. – sleske

25

도구 또는 응용 프로그램의 대답을 요청했지만 실제로 필요한 것은 프로세스 응답입니다. 기본 테마는 데이터베이스 DDL (및 필요한 경우 DML)을 버전 화하고 모든 버전의 데이터베이스를 상위 버전으로 업데이트 할 수있는 변경 스크립트를 제공해야한다는 것입니다.

자세히 설명 제프 앳 우드에 의해 제공 K. 스콧 앨런에 의해 작성된 링크의 세트 무엇을이 같이한다고 - 나는 아마도 여기에 쓸 수있는 것보다 그들은 더 나은 수행 http://www.codinghorror.com/blog/2008/02/get-your-database-under-version-control.html

+3

+1 데이터베이스를 버전 지정합니다. 더 upvote 수 있기를 바랍니다 ... – sleske

+1

그건 문제가 거짓말. Typo3는 업데이트/수정시 자체 스크립트를 실행하며, 이렇게하면 변경 사항을 추출하려고합니다. 그래서 DB diff 도구가 필요합니다. – demonkoryu

+1

버전 관리 경로를 사용하려면 http://www.liquibase.org/를 사용하는 것이 좋습니다. 스키마를 정시 및 역방향으로 관리 할 수 ​​있습니다. –

1

두꺼비

과거에는 여러 번 엉덩이를 여러 차례 저장했습니다. 사람들이 exit 전략을 사용하지 않고 SQL을 실행하는 이유는 무엇입니까?

레드 게이트도 좋습니다.

0

dbDeploy 또는 유사한 스크립트를 사용하여 현재 작업 방식에 자동화를 추가 할 수 있습니다. 이렇게하면 스키마 변경 사항을 추적하고 적절하게 스키마를 업그레이드/롤백 할 수 있습니다. "간편한 데이터베이스 버전 제어!"-

0

DBV 위해 수정할 수 있습니다 (PHP)

+0

데이터베이스 구조를 다루는 DBV를 기억하고 있습니다. 데이터가 아닙니다. –

관련 문제