2012-12-17 2 views
2

저는 EF 코드 첫 번째 모델로 asp.net mvc에서 작업 중입니다. 프로젝트에서 EF 코드를 사용하여 마이그레이션을 먼저 적용하려고합니다. 나는 MySQL 데이터베이스를 사용하고있다. 현재 나는 EF 4.3.1 버전과 MySQL 커넥터/6.6.4.0 버전의 .net을 사용하고 있습니다. 필자는 프로젝트에 마이그레이션을 성공적으로 추가 했으므로 오류가없는 일련의 명령을 실행합니다. 나는mysql 데이터베이스에 첫 번째 마이 그 레이션 코드를 적용 할 수 없습니다.

PM> Enable-Migrations 

PM> Add-Migration InitialMigration 

PM> update-database -verbose 

다음 단계 내 프로젝트에 마이그레이션 폴더를 생성 및 마이그레이션 폴더 안에 그것이 내가 다음 코드를 추가 한 구성 파일에 구성 및 timestamp_Initialmigration 파일을 만들어 다음 단계를 따랐다. 그런 내가 좋아하는 내 클래스에 하나 개의 필드를 추가 한 후

SetSqlGenerator("MySql.Data.MySqlClient", new MySql.Data.Entity.MySqlMigrationSqlGenerator()); 

, 그 이후

public int newprop{get; set;} 

내가 오후 콘솔에서 업데이트를 데이터베이스 -verbose 명령을 실행합니다.

나는이 같은 오류가 발생 내 응용 프로그램을 실행할 때

"알 수없는 열 '필드 목록'에서 'Extent1.newprop'"

난이 오류가 난을한다 얻고 왜 나를 인도 해주십시오 잘못된 길로 갔다 나를 안내 해주십시오.

답변

1

당신이 사용하지 않는 경우 자동 마이그레이션

Database.SetInitializer (새 MigrateDatabaseToLatestVersion());

public class MyMigrationConfiguration : DbMigrationsConfiguration<MyDbContext> 
    { 
     public MyMigrationConfiguration() 
     { 
      AutomaticMigrationsEnabled = true; // Are you using this ????? 
      AutomaticMigrationDataLossAllowed = true; 
     } 
    } 

그런 다음 다른 마이그레이션을 추가하고 데이터베이스를 업데이트하려면 PM 커맨드 릿을 사용하여 EF에 알려야합니다.

PM> Enable-Migrations //already done this ? 
PM> Add-Migration myLabel 
PM> Update-Database 

도움을 웹 페이지의 "코드를 기반으로 마이그레이션"에 대한 검색

0

이 영업 이익에 대답 좀 늦은 ...하지만 구글의 첫 히트로 팝업 때문에 병이 어쨌든 가서 :)

여기서 문제는 MSSQL에 비해 MySQL에 많은 제한이 있다는 것입니다. * 특히 케이스에 민감한 파일 시스템 (리눅스 호스트)의 mysql의 경우 테이블 이름에 대문자가 포함되지 않을 수 있습니다. * 키는 767 바이트로 제한되며 정수 유형이어야합니다. * 그런 다음 Mysql.Data 패키지의 마이그레이션 생성기 부분에 문제가 있습니다. 예를 들어 이름을 바꿀 때 'dbo'가 제거되지 않습니다.

guide on insidemysql.com을 살펴보세요. TKey 형식 변환에서 int을 사용하기 위해 Aspnet.Identity 스택을 재구성하는 방법을 설명합니다.

저는 HistoryContext에 연결되어 있고 __MigrationHistory의 구조를 변경할 수있는 프로젝트가 있습니다. 테이블/열의 이름을 변경하고 크기를 조정합니다.IdentityConfig의 리메이크도 있습니다 - 그럼

  1. https://github.com/mschr/ASP.NET-MVC5.MySql-Extended-Bootstrap/tree/master/my.ns.entities/DbContexts/MigrationConfig
  2. https://github.com/mschr/ASP.NET-MVC5.MySql-Extended-Bootstrap/tree/master/my.ns.entities/IdentityConfig

를 보라 (IdentityDbContext 참조) 컨텍스트로를 연결하고 마이그레이션에서 언급 MySqlMigrationScriptGeneratorHistoryContextFactory 가능 . 구성 클래스 (내 IdentitiyMigrations.Configuration 참조)

관련 문제