문제

저는 SQL Server 2005를 데이터 저장소로 사용하는 오픈 소스 프로젝트를 진행하고 있습니다.DB를 한 버전에서 다른 버전으로 업그레이드하려면 diff 스크립트를 생성하는 DB 비교 도구가 필요합니다.

변환 스크립트를 생성하는 오픈 소스 또는 무료 SQL Server DB diff 도구가 있습니까?

도움이 되었습니까?

해결책

저는 Open DBiff가 좋은 일을 한다고 생각합니다.간단하며 SQL Server 2005/2008에서 작업합니다.

그러나 변경 스크립트만 생성하세요.그 이상도 그 이하도 아닙니다.

다른 팁

CodePlex에서 어제 알았습니다. DbDiff (http://www.codeplex.com/OpenDBiff) 시도해 볼 수 있습니다.Sql2005 및 2008을 지원하지만 시도하지 않았습니다.

현금 좀 쓰고 구입하는 걸 추천드려요 Red Gate의 SQL 비교 탁월한 작업을 수행하고 데이터베이스를 Visual Studio 데이터베이스 프로젝트와 비교하여 업그레이드 스크립트를 생성할 수도 있는 도구입니다.빠르고 사용하기 쉽고 잘 작동합니다.업그레이드 스크립트의 품질도 괜찮습니다.

그다지 비싸지 않습니다.아마도 시간보다 비용이 적게 들 것입니다.시간당 요금이 얼마인지, 오픈 소스 도구를 조사하고 작동시키는 데 몇 시간이 걸릴지(그리고 이미 지출한 시간)를 곱해 보세요.이것이 바로 '무료' 도구가 실제로 비용을 지불하는 금액이며, 이는 종종 상용 도구보다 훨씬 더 많은 비용이 듭니다.

오픈 소스는 아니지만 무료입니다(맥주처럼). SQL Effects Accord(일명 Clarity) Community Edition

AdeptSQL Diff와 DataDiff는 RedGate보다 훨씬 저렴하고 훨씬 더 단순화된 UI를 갖춘 훌륭한 제품이며, 아직까지 이 제품이 처리할 수 없는 시나리오에 직면한 적이 없습니다.

알로하

시도해 볼 수도 있습니다. SqlDbDiff.변경 스크립트를 생성할 수 있습니다.무료 버전은 충분히 좋은 일을 합니다.

xSQL 번들(xSQL 데이터 비교 및 ​​xSQL 개체 비교)을 사용해 보신 분 계신가요?우리 곳은 DB diff에만 사용하고 동기화는 하지 않으므로 동기화에 대해서는 말할 수 없지만 diff와 보고서는 나쁘지 않습니다.

또한 OpenDBDiff에는 스핀오프가 있는데 어느 것이 더 나은지 확실하지 않습니다. http://code.google.com/p/sql-dbdiff/

여기에 언급된 무료/오픈 소스 DB diff 도구 중 diff 및 동기화를 자동화하기 위한 스크립트 가능/명령줄 인터페이스를 제공하는 것이 있는지 아는 사람이 있습니까?

xSQL 도구를 살펴보니 명령줄 액세스를 제공하지만 불행하게도 diff 결과를 (보고서) 파일로 내보내는 스크립트 가능한 명령이 없습니다.

정확히 원하는 것은 아니지만 postgres에서 이것을 찾았습니다.

http://mbk.projects.postgresql.org/

적용할 diff를 생성하지 않지만 대신 새 버전의 테이블 전체 덤프를 이전 버전과 병합할 수 있습니다.

흠, 제가 아는 바는 없습니다.언제든지 정의를 SQL로 검색한 다음 diff 도구를 실행할 수 있지만 뒤에서는 약간의 고통이 따릅니다.

아마도 이에 대한 가장 좋은 해결책은 일종의 "마이그레이션" 도구를 사용하는 것이므로 데이터베이스 정의를 코드와 함께 유지하고 버전을 지정할 수 있습니다.

업데이트

Sourceforge에서 찾았습니다. Whiz SQL 구조 비교 다음 설명과 함께:Whiz는 두 MS-SQL Server 데이터베이스 간의 차이점을 찾는 데 유용한 데이터베이스 차이점 유틸리티입니다.또한 한 데이터베이스에서 다른 데이터베이스로 변경 사항을 업데이트하는 SQL 스크립트를 생성할 수도 있습니다.

하지만 지금까지 작업에 성공하지 못했습니다.

SQL Delta와 SQL Compare가 모두 있습니다.각각에는 강점이 있지만 약점도 있어 상당한 고통을 안겨줍니다.

SQL Delta는 비교에서 일부 트리거를 놓치고 작업 목록에 없는 작업을 수행하며 때로는 사용자가 원하지 않는 작업을 수행합니다.그것은 상당한 시간의 비용을 들여 발견되었습니다.

SQL 비교는 트리거를 포착하지만 테이블 목록 내에 포함되어 있습니다.대규모 데이터베이스에서는 각 테이블을 살펴보고 선별하는 것을 의미합니다.도구가 우리를 위해 격리했어야 했던 것입니다.다시 말하지만 시간이 많이 소요됩니다.

조금 늦었지만 방금 Code plex에 대한 간단한 프로젝트를 발표했습니다.

http://dbcompare.codeplex.com

두 개의 연결 문자열을 입력(또는 구축)하면 모든 테이블, 뷰 및 저장 프로시저가 비교됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top