3

이것은 asp.net mvc 5의 코드 첫 번째 마이그레이션에 대해 약간 이상한 질문입니다. 저는 프로젝트를 진행 중이며 수동 마이그레이션을 사용하여 데이터베이스를 업데이트합니다. 내 모델의 데이터베이스 구조를 변경 아무것도 할 경우에, 나는 다음 패키지 관리자 콘솔로 가서ASP.NET MVC 5에서 코드 첫 마이그레이션의 이름을 바꿀 수 있습니까

add-migration "MigrationName"

를 입력하지만 길을 따라 내 마이그레이션 잘못된 이름이 명명했다. 각 파일의 이름을 수정하고 싶지만이 파일의 무결성에 영향을 미치지 않도록하고 싶습니다. 타임 스탬프가 아닌 파일 이름의 두 번째 부분 (설명 부분)의 이름을 바꿀 계획입니다. 예를 들어

나는 다음과 같은 이름이 있었다 :

201411190809335_CreateStageTypeRender

을하지만 타겟팅 할 수 나는 미래에 지금의 이름을 변경하지 않으면 그것은

201411190809335_CreateSeatingTypeRender

을 읽을 수 있어야합니다 내가 잘못 명명했기 때문에 사고로 그 이동.

중요한 프로젝트가 아닌 경우 이름을 변경했을 때 비주얼 스튜디오에서 하위 파일 (.cs, .resx)의 이름을 변경 한 것처럼 보입니다. 그래서 이것이 문제가되지 않는 것처럼 보일 것입니다, 그리고 시간 기록은 속도를 유지하여 질서있게 유지해야합니다.

질문 : 고려해야 할 사항이 있습니까? 마이그레이션 파일 이름의 설명 부분의 이름을 바꾸어도됩니까?

BTW ... 나는 또한 Designer.cs 파일 내부에 가서에서 GET 반환 값의 이름을 바꿀 수 있습니다 :

public sealed partial class CreateStageTypeRender : IMigrationMetadata 
    private readonly ResourceManager Resources = new ResourceManager(typeof(CreateStageTypeRender)); 
    string IMigrationMetadata.Id 
    { 
     get { return "201411190809335_CreateStageTypeRender"; } 
    } 

마지막으로

public sealed partial class CreateSeatingTypeRender : IMigrationMetadata 
    private readonly ResourceManager Resources = new ResourceManager(typeof(CreateSeatingTypeRender)); 
    string IMigrationMetadata.Id 
    { 
     get { return "201411190809335_CreateSeatingTypeRender"; } 
    } 

에 나는 데이터베이스에 갔다와 이름을 변경 한 기존 이주 이름과 일치하는 레코드를 변경하고 새 이주 이름을 반영하도록 변경했습니다. 그렇지 않으면 EF/Visual Studio에서 새 마이그레이션이 있다고 생각할 것이라고 생각합니다.

나는 모든 기반을 다룰 수 있다고 생각합니다. 내가 무엇인가 놓쳤다 고 생각하거나 어떤 이유로 좋은 생각이 아니라면 알려주십시오.

+0

이 먼저 그것을 시도하기 때문에이 기술에 문제가 있었나요 MVC5 특정되지 않습니다 EF 테스트 •? – madamission

+0

그러나 아무런 문제가 없었습니다. 나는 또한 그러한 이주를 목표로 삼지 않았다. 궁극적 인 테스트는 새 프로젝트를 시작하고 데이터베이스를 빠르게 설정하고 마이그레이션을 한 다음 되돌려 수동으로 이름을 바꾸고 몇 가지 마이그레이션과 업데이트를 한 다음 이름이 바뀐 마이그레이션 중 하나로 롤백하려고하는 것입니다. . 어때, 우리 중 누구도 먼저 그것을 할 시간을 찾을 수 여기에 돌아와 의견을 남길. 지옥이라면 그 질문에 답할 수 있습니다. –

+0

괜찮은 소리, 나는 그것을 줄거야 ... – madamission

답변

0

마침내이 문제가있는 프로젝트로 되돌아갔습니다.

예를 들어 반환 유형을 CreateSeatingTypeRender로 변경한다고 말하면서 ... 테스트를 위해 일관성의 이름으로 변경해야하는 부분이 5 개 있다는 것을 분명히 밝힙니다. 그 중

코드에 : 클래스 이름, .designer 파일의 부분 클래스 이름, 자원 관리자 대해서 typeof와 당신이 언급 한 IMigrationMetadata.Id 속성은 ...

마지막 장소는, 데이터에 MigrationId를 이전 이름에서 새 이름으로 업데이트하십시오.

이러한 변경 사항을 적용하면 upgrade-database 명령이 완벽하게 작동합니다.

개발자 데이터베이스의 마이그레이션 이름을 바꾸는 경우 계속 사용해보십시오 ... 마이그레이션이 프로덕션 시스템에 이미있는 경우 수동으로 해당 __migration 테이블 행의 이름을 바꿔야합니다. 또한 마이그레이션을 통해 이미 해당 시스템에 배포 할 때까지 마이그레이션을 수행 한 다른 장소도 있습니다.

테스트 참고 사항 : 나는이 • 6.1.3 가