μν°ν° μ΄λ¦μ λ°κΎΈλ©΄ μ΄λ¦λ§ λ°κΎΈλ λμ ν μ΄λΈμ΄ μμ λκ³ μμ±λ©λλ€.
μ΄κ²μ Pomeloκ° μλ EFμ κ³ μ ν νκ³μ λλ€. EFλ μΌλ°μ μΌλ‘ ν μ΄λΈ μμ /μμ±κ³Ό μ΄λ¦ λ°κΎΈκΈ°λ₯Ό ꡬλΆν μ μμ΅λλ€.
μ΄λ¦ λ³κ²½μμ μλ €μ£Όλ νΈλ¦μ μν°ν° ν΄λμ€μ μμ±μ ν΅ν΄ λλ OnModelCreating fluent APIλ₯Ό ν΅ν΄ μλμΌλ‘ ν μ΄λΈ μ΄λ¦μ μ€μ νλ κ²μ λλ€.
μμλ λ€μκ³Ό κ°μ΅λλ€.
μ: builder.Entity<OriginalEntity>().ToTable("RenamedEntity");
λ§μ΄κ·Έλ μ΄μ
μ μμ±ν©λλ€. κ·Έλ¬λ©΄ μν°ν°μ λν μ¬λ°λ₯Έ μ΄λ¦ λ°κΎΈκΈ° ν
μ΄λΈ λ§μ΄κ·Έλ μ΄μ
μ΄ μμ±λ©λλ€.
μ΄ λ§μ΄κ·Έλ μ΄μ
μ΄ μ¬λ°λ₯Έμ§ νμΈνμμμ€. Pomelo 2.2.6μ μ¬μ©νλ κ²½μ° migrationBuilder.DropPrimaryKey
λ° AddPrimaryKey
νλͺ©μ νμΈνκ³ μμ νμμμ€. μ΄λ¬ν νλͺ©μ MySQLμ νμνμ§ μκ³ λ©±λ±μ± SQL μ€ν¬λ¦½νΈ μμ±μ λ¬Έμ κ° λ°μνκΈ° λλ¬Έμ
λλ€. μ΄κ²μ 3.1μμ μμ λμμ΅λλ€.
μ€μ μν°ν° ν΄λμ€μ μ΄λ¦μ λ°κΏλλ€.
μ μν°ν° μ΄λ¦μΌλ‘ λͺ¨λΈ μ€λ μ·μ μ λ°μ΄νΈνλ €λ©΄ λ€λ₯Έ λ§μ΄κ·Έλ μ΄μ μ μμ±ν©λλ€.
κ·Έλ° λ€μ .ToTable("RenamedEntity");
λ₯Ό μ κ±°νμ¬ κ·μΉ κΈ°λ° ν
μ΄λΈ λͺ
λͺ
μΌλ‘ λ체νλ €λ©΄ λ€μμ μννμμμ€.
.ToTable("RenamedEntity");
μ κ±°ν©λλ€. ν
μ΄λΈ μ΄λ¦μ΄ μ ννλ©΄ κ·μΉ κΈ°λ° μ΄λ¦μ΄ νμ¬ μ΄λ¦κ³Ό κ°μμΌ ν©λλ€.
ν μ΄λΈ μ΄λ¦μ΄ λ€μ λ°λμ§ μμλμ§ νμΈνκΈ° μν΄ μ΅μ’ λ§μ΄κ·Έλ μ΄μ μ μμ±ν©λλ€. κ·Έλ λ€λ©΄ λͺ¨λ λ¨κ³λ₯Ό λλλ¦¬κ³ μ΄λ¦μ μμ ν λ€μ λ€μ μ€ννμμμ€. λ§μ΄κ·Έλ μ΄μ μ΄ λΉμ΄ μμΌλ©΄ λλ릴 μ μμ΅λλ€.
μμ§ ν μ€νΈνμ§λ μμμ§λ§ μλ§λ μμμΌλ‘ μνν μ μμ κ²μ λλ€. μ¦:
.ToTable
λ₯Ό μΆκ°ν©λλ€..ToTable
μμ± μ κ±°μμΈν λ΄μ©μ λ€μ μ€ν μ€λ²νλ‘ μ§λ¬Έμ μ°Έμ‘°νμΈμ.
https://stackoverflow.com/questions/13296996/entity-framework-migrations-renaming-tables-and-columns
κΈ°λ³Έμ μΌλ‘ _some_ κ²½μ°μ ν μ΄λΈ μ΄λ¦ λ°κΎΈκΈ°λ₯Ό κ°μ§ν μ μλ ν΄λ¦¬μ€ν±μ΄ ꡬνλμ΄ μμ΅λλ€.
κ·Έλ¬λ μ΄λ¦ λ°κΎΈκΈ°λ λμ€μ μμ±λ λ§μ΄κ·Έλ μ΄μ
μ½λλ₯Ό νμ€ν νμΈνκ³ νμν κ²½μ° DropTable
λ° CreateTable
νΈμΆμ RenameTable
λ‘ λ³κ²½νλ €λ μμ
μ€ νλμ
λλ€.
EF Coreμλ μ΄λ¬ν μλ μμ± λ§μ΄κ·Έλ μ΄μ κ³Ό λ§μ°¬κ°μ§λ‘ μ΄λ¦ λ°κΎΈκΈ° ν μ΄λΈμ΄ μμ΅λλ€.
migrationBuilder.DropPrimaryKey(
name: "PK_LogFieldsConfiguration",
table: "LogFieldsConfiguration");
migrationBuilder.RenameTable(
name: "LogFieldsConfiguration",
newName: "LogFieldsConfigurations");
migrationBuilder.AddPrimaryKey(
name: "PK_LogFieldsConfigurations",
table: "LogFieldsConfigurations",
column: "Id");
κ°μ₯ μ μ©ν λκΈ
μ΄κ²μ Pomeloκ° μλ EFμ κ³ μ ν νκ³μ λλ€. EFλ μΌλ°μ μΌλ‘ ν μ΄λΈ μμ /μμ±κ³Ό μ΄λ¦ λ°κΎΈκΈ°λ₯Ό ꡬλΆν μ μμ΅λλ€.
μ΄λ¦ λ³κ²½μμ μλ €μ£Όλ νΈλ¦μ μν°ν° ν΄λμ€μ μμ±μ ν΅ν΄ λλ OnModelCreating fluent APIλ₯Ό ν΅ν΄ μλμΌλ‘ ν μ΄λΈ μ΄λ¦μ μ€μ νλ κ²μ λλ€.
μμλ λ€μκ³Ό κ°μ΅λλ€.
μ:
builder.Entity<OriginalEntity>().ToTable("RenamedEntity");
λ§μ΄κ·Έλ μ΄μ μ μμ±ν©λλ€. κ·Έλ¬λ©΄ μν°ν°μ λν μ¬λ°λ₯Έ μ΄λ¦ λ°κΎΈκΈ° ν μ΄λΈ λ§μ΄κ·Έλ μ΄μ μ΄ μμ±λ©λλ€.
μ΄ λ§μ΄κ·Έλ μ΄μ μ΄ μ¬λ°λ₯Έμ§ νμΈνμμμ€. Pomelo 2.2.6μ μ¬μ©νλ κ²½μ°
migrationBuilder.DropPrimaryKey
λ°AddPrimaryKey
νλͺ©μ νμΈνκ³ μμ νμμμ€. μ΄λ¬ν νλͺ©μ MySQLμ νμνμ§ μκ³ λ©±λ±μ± SQL μ€ν¬λ¦½νΈ μμ±μ λ¬Έμ κ° λ°μνκΈ° λλ¬Έμ λλ€. μ΄κ²μ 3.1μμ μμ λμμ΅λλ€.μ€μ μν°ν° ν΄λμ€μ μ΄λ¦μ λ°κΏλλ€.
μ μν°ν° μ΄λ¦μΌλ‘ λͺ¨λΈ μ€λ μ·μ μ λ°μ΄νΈνλ €λ©΄ λ€λ₯Έ λ§μ΄κ·Έλ μ΄μ μ μμ±ν©λλ€.
κ·Έλ° λ€μ
.ToTable("RenamedEntity");
λ₯Ό μ κ±°νμ¬ κ·μΉ κΈ°λ° ν μ΄λΈ λͺ λͺ μΌλ‘ λ체νλ €λ©΄ λ€μμ μννμμμ€..ToTable("RenamedEntity");
μ κ±°ν©λλ€. ν μ΄λΈ μ΄λ¦μ΄ μ ννλ©΄ κ·μΉ κΈ°λ° μ΄λ¦μ΄ νμ¬ μ΄λ¦κ³Ό κ°μμΌ ν©λλ€.ν μ΄λΈ μ΄λ¦μ΄ λ€μ λ°λμ§ μμλμ§ νμΈνκΈ° μν΄ μ΅μ’ λ§μ΄κ·Έλ μ΄μ μ μμ±ν©λλ€. κ·Έλ λ€λ©΄ λͺ¨λ λ¨κ³λ₯Ό λλλ¦¬κ³ μ΄λ¦μ μμ ν λ€μ λ€μ μ€ννμμμ€. λ§μ΄κ·Έλ μ΄μ μ΄ λΉμ΄ μμΌλ©΄ λλ릴 μ μμ΅λλ€.
μμ§ ν μ€νΈνμ§λ μμμ§λ§ μλ§λ μμμΌλ‘ μνν μ μμ κ²μ λλ€. μ¦:
.ToTable
λ₯Ό μΆκ°ν©λλ€..ToTable
μμ± μ κ±°μμΈν λ΄μ©μ λ€μ μ€ν μ€λ²νλ‘ μ§λ¬Έμ μ°Έμ‘°νμΈμ.
https://stackoverflow.com/questions/13296996/entity-framework-migrations-renaming-tables-and-columns