NET Framework 4.5.1에서 MVC 5를 사용하고 있습니다. 코드 우선. 또한 SQL 2012 서버 및 (localdb) \ v11.0에서 마이그레이션을 사용하고 있습니다.마이그레이션 동기화 개발 및 프로덕션 데이터베이스
저는 C#과 MVC5를 사용하여 프로젝트를 개발하고 있습니다. 개발하는 동안, 나는 발달상의 컴퓨터에 많은 새로운 테이블을 만들고 시스템이 인덱스를 만드는 "Name"필드를 변경했다. 나는 그것을 추가하고 그것을 여러 번 삭제했다.
그 이후로 나는 새로운 무관 한 테이블을 많이 추가했지만 어떤 이유로 "이름"필드에 대한 인덱스로 인해 외부 제약 조건 오류가 발생했습니다. 이러한 오류는 내가 고칠 때마다 계속 증가하므로 마이 그 레이션의 초기 상태로 되돌아 가기로 결정하고 현재 위치를 새로운 시작점으로 사용하여 재설정했습니다. 프로덕션 테이블은 개발 DB에서이 새로운 시작 지점을보고 개발 상태로 다시 동기화되기를 기대했습니다. 나는 프로덕션 db가 개발 DB에 자체적으로 일치하고 업데이트된다는 어딘가를 읽었다 고 생각했습니다. 나는 거기에 개발 DB에있는 파일에 자신을 일치시킬 것이 프로덕션 DB에 마이 그 레이션 파일이 있다고 생각 - 그 파일은 분명히 밖으로 동기화했다. 데이터 삭제를 고려했지만 조언을받을 때까지 기다리지 않습니다.
어쨌든 Dev 컴퓨터에서 migrations 디렉토리의 이름을 변경하고 프로젝트에서 제외했습니다. 그런 다음 dev (내 로컬 db에 새 db 이름을 사용하여) 테이블을 다시 초기화하고 초기화 데이터를 다시로드했습니다. 그것은 모두 효과가있었습니다.
이제 새로운 프로덕션 DB와 개발 DB가 달라졌고 dev 컴퓨터의 마이그레이션이 새 파일을 만들도록 설정되었지만 프로덕션 상태의 사용자는 이전 마이그레이션을 예상했습니다. 개발 용 컴퓨터를 사용하여 프로덕션 DB를 업데이트하려고 할 때마다 파일이 존재한다는 오류가 계속 발생했습니다.
그래서 마이그레이션 파일에있는 모든 파일을 주석으로 작성하고 다시 시도했습니다. 이제 프로덕션 db는 시작할 것이지만, 업데이트 된 코드는 프로덕션 db에서 생성되지 않은 새 필드를 가지고 있기 때문에 실행되지 않습니다. 그래서, 제 제작 DB에서 실종 된 모든 필드의 오류가 발생하기 시작했습니다. 나는 자동 마이그레이션을 사실로 만들려고했으나 작동하지 않았다. 나는 이것을 고칠 수있는 유일한 방법은 수작업으로 들어가서 필드를 하나씩 동기화하는 것입니다.
질문 1 : 프로덕션 데이터베이스와 개발 데이터베이스를 동기화하여 (개발 마이그레이션을 사용하여) 개발 데이터베이스와 동일하게 자동으로 사용할 수 있습니까?
질문 2 : 위의 시나리오를 보면서, 프로덕션 데이터베이스를 사용하여 miggrations을 다시 설정하는 좋은 방법은 무엇입니까?