2009-10-06 5 views
1

좋아요, 당신은 2 dbs라고합니다. 하나는 당신이 마스터 템플릿으로 사용하는 다양한 수정을 통해, 우리는 이제 버전 3에 있다고 가정 해 봅시다.하지만 두 번째 db는 리비젼 1에서 템플릿의 복사본입니다.전체 MySQL 데이터베이스의 구조를 어떻게 업데이트합니까?

db 2가 사용 중이기 때문에 , 테이블을 삭제하고 싶지는 않지만 db 전체의 구조를 db 1의 최신 버전으로 업데이트해야합니다.

수동으로 수행 할 필요없이이 작업을 수행 할 수있는 방법은 무엇입니까? 모든 동일한 변경 사항이 반복적으로 (여러 버전에서 많은 dbs 이상) 데이터를 잃지 않고 있습니까?

일부 데이터는 더 이상 유효하지 않을 수도 있기 때문에 데이터 무결성이 문제가된다는 것을 알고 있지만이를 재정의 할 방법이 없습니까?

이상적으로 나는 단지 db 1 구조의 mysqldump를 사용할 수 있고 모든 데이터를 잃지 않고 db 2의 모든 충돌 테이블을 db 1의 새 버전으로 덮어 쓸 수 있기를 원한다. phpmyadmin에서 이렇게 할 수있는 방법이 있다면, 그것은 웅장 할 것입니다.

답변

2

시도해 볼 수 있습니다 MySQL workbench; 그것이 가능합니다

  1. MySQL 데이터베이스에서 스키마를 만듭니다.
  2. db 버전 3을 리버스 엔지니어링하여 스키마를 MySQL 워크 벤치로 가져 와서
  3. 과 비교 한 다음 db 버전 1의 스키마와 비교하여 SQL alter 스크립트를 생성합니다.
+0

어떻게 워크 벤치의 스키마를 비교합니까? – simonhamp

+0

File-> forward engineering-> alter script를 작성하십시오. 또는 이와 비슷한 것 – Graviton

+0

@Graviton FYI, 그 링크는 존재하지 않는 Western Digital 제품입니다. https://www.mysql.com/products/workbench/ – toast

0

DB 커넥터가 당신을 위해 (일부 파이썬 프레임 워크는 DB를 발전시킬 수 있습니다.) 또는 수동으로해야합니다.

수동으로해야하는 경우 가장 좋은 방법은 스크립트의 일부 데이터로 전체 데이터베이스를 만드는 것입니다. 이것은 완전 자동이어야합니다. 기본 버전을 생성 한 후 스크립트를 적용하여 DB를 변경합니다 (테이블 변경 등).

자동 테스트에서이를 수행하고 고객 사이트에서 다음 버전을 설치할 때 DB를 자동으로 마이그레이션 할 수 있습니다.

관련 문제