0

나는 Codefirst에서 초보자이며 어떻게 올바르게 작동하는지 이해하지 못합니다. "Add-Migration"명령을 통해 마이그레이션 1..3을 생성하고 "업데이트 데이터베이스"이라는 상대 업데이트를 발행했습니다.EF 코드 마이 그 레이션 프로덕션 환경에서 작동하는 방법

Migration 디렉터리에 Configuration.cs 파일이 있고 초기 데이터를 시드하기 위해 만든 사용자 지정 데이터베이스 이니셜 라이저 (MySQL에서 작업 중입니다)가 있습니다.

아직 데이터베이스가없는 프로덕션 환경에서 어떤 일이 발생하는지 모릅니다.

누가 데이터베이스를 만들고 업데이트해야합니까? 마이그레이션이 차례로 실행됩니까?

이 프로세스가 프로덕션 환경에서 어떻게 작동하고 유용한 링크를 공유하는지 제안 해 주시겠습니까?

감사합니다, 로베르토

+0

프로덕션 환경에 db가 없다는 것은 무엇을 의미합니까? – ilans

+0

안녕하세요, 프로덕션 환경에서 처음부터 시작하고 있습니다. 방금 패키지를 배포했습니다. 컨텍스트 클래스가 처음으로 호출 될 때 마이그레이션 프로세스가 호출 될 것 같지만 어떤 방법으로 생각할 수 있습니까? –

+0

이니셜 라이저에서'CreateIfNotExists' 함수를 호출하거나 권장하지 않는 이니셜 라이저를 사용해야합니다. 이것은 나에게 많은 문제를 일으켰습니다. – ilans

답변

0

당신이 Automatic Migrations를 사용하는 가정 - 모든 마이그레이션 잇달아이라고, 그들이 창조 된 순서대로. 그들의 Up 함수가 호출됩니다. 나중에 Configuration 클래스의 Seed 함수가 실행됩니다.

각각의 마이그레이션은 다음과 같이 파일 이름 내부 타임 스탬프의 종류를 가지고 :

enter image description here

내가처럼 단일 문맥 클래스에서 데이터베이스를 많이 작성하는 경우, 그리고 마이그레이션을 제어 할 수 없다는 것을 두려워하면 수동 마이그레이션을 사용할 수 있습니다. DbMigrator이라고합니다.

내/다른 사람의 대답 here 사용 방법을 참조하십시오.

+0

안녕하세요, 귀하의 설명 주셔서 감사합니다, 만약 내가 false로 자동 migartion을 설정, 비 dev/local 환경에서 동작이 무엇입니까? –

+0

"자동 마이그레이션"을 항상 사용하지는 않습니다. 일부 DB에서는 필자가 사용하고 일부는 사용하지 않습니다. 의미 - 사용하지 않으면 아무 일도 일어나지 않을 것입니다 ... 내가하는 것처럼 단일 컨텍스트 클래스에서 많은 데이터베이스를 생성하고 마이그레이션을 제어 할 수 없다는 것을 두려워하면 수동 마이그레이션을 사용할 수 있습니다. 그것은'DbMigrator'라고합니다. – ilans

+0

'자동 마이그레이션'이 켜져있을 때 발생할 수있는 원하지 않는 마이그레이션 및 물건을 완전히 통제하고 두려워하지 않기 위해 수동 마이그레이션의 옵션을 보여주는 링크를 참조하십시오. – ilans