웹상에서 답변을 찾을 수없는 문제가 있습니다.My First Name Migration - RenameColumn - My SQL을 사용하지 못했습니다.
MySQL을 사용하여 CodeFirst EF 4.3.1 마이그레이션을 사용하고 있습니다.
MySQL 공급자가 Devart입니다. 다음과 같은 오류가 업데이트 - 데이터베이스 결과를 실행
public partial class ChangeSet_1231 : DbMigration
{
public override void Up()
{
RenameColumn(table: "RW_TTaskInstanceProperties", name: "TaskInstance_TaskInstanceId", newName: "TaskInstanceId");
}
public override void Down()
{
RenameColumn(table: "RW_TTaskInstanceProperties", name: "TaskInstanceId", newName: "TaskInstance_TaskInstanceId");
}
}
:
PM> Update-Database -verbose –startupprojectname "RTDataAccess"
Using NuGet project 'RTDataAccess'.
Target database is: 'rsruntime' (DataSource: localhost, Provider: Devart.Data.MySql, Origin: Explicit).
Applying explicit migrations: [201205311312361_ChangeSet_1231].
Applying explicit migration: 201205311312361_ChangeSet_1231.
ALTER TABLE RW_TTaskInstanceProperties RENAME COLUMN TaskInstance_TaskInstanceId TO TaskInstanceId
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'COLUMN TaskInstance_TaskInstanceId TO TaskInstanceId' at line 2
을 오류 세부 사항보고에서
기존 데이터베이스에 대해 추가 마이그레이션을 실행 한 후, 다음 코드를 가지고 RenameColumn은 MySql 명령 대신 MsSql 명령으로 변환되므로 구문 오류에 대해보고하는 것은 당연한 일입니다.
어떻게 해결할 수 있습니까?
나는 그때 MySQL을 맞게하고 실행하는 스크립트를 편집, 업데이트-데이터베이스 -script를 사용할 수 알지만, 업데이트-Database 명령 작업 ...
감사를 만들기 위해 선호합니다. 라디의 질문에 대한 응답으로
:
예, 나는 MySQL의 마이그레이션에 대한 Devart의 SQL 발생기를 등록했다. 내 구성 클래스는 다음과 같습니다
using Devart.Data.MySql.Entity.Configuration;
using Devart.Data.MySql.Entity.Migrations;
internal sealed class Configuration : DbMigrationsConfiguration<RTDataAccess.RTContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
MySqlEntityProviderConfig.Instance.Workarounds.IgnoreSchemaName = true;
var connectionInfo = MySqlConnectionInfo.CreateConnection("Server=xxxx;Port=yyyy;Database=rsruntime;Uid=zzzz;Pwd=wwww;charset=utf8;");
this.TargetDatabase = connectionInfo;
this.SetSqlGenerator(connectionInfo.GetInvariantName(), new MySqlEntityMigrationSqlGenerator());
}
protected override void Seed(RTDataAccess.RTContext context)
{
}
}
당신이 당신의 마이그레이션 구성 클래스의 MySQL의 마이그레이션을위한 Devart의 SQL 발생기를 등록 했습니까? –
예. 내 질문을 편집하여 관련 구성 코드를 포함시킵니다. – mayash
올바른 것 같습니다. 이 경우 Devart의 지원 부서에 연락해야합니다. –