programing

EF-마이그레이션 자동화 "Update-Database-Script"

codeshow 2023. 8. 20. 12:58
반응형

EF-마이그레이션 자동화 "Update-Database-Script"

EF 마이그레이션을 사용하여 EF 코드 우선 DB 모델의 변경 사항을 추적하고 있습니다.이제 마이그레이션할 때마다 SQL 스크립트를 하나씩 생성해야 해당 스크립트 집합을 DBA에게 전달할 수 있습니다.

다음을 사용하여 SQL 스크립트를 생성할 수 있었습니다.Update-Database -Script ...

하지만 이 작업을 자동화하고 싶습니다.-Script 스위치가 SQL을 쓸 위치를 지정하는 매개 변수를 수락하기를 바랐지만 그렇지 않습니다.또한 SQL 스크립트가 STDOUT가 아닌 임시 파일에 기록되기 때문에 출력 리디렉션이 작동하지 않습니다.스크립트에서 임시 파일을 가져올 방법이 없습니다.

마이그레이션 -> SQL 스크립트 생성을 자동화하는 방법에 대한 아이디어가 있습니까?혹시 제가 모르는 마법의 파워셸 속임수가 있을까요?

편집: 그런데, 마이그레이션을 사용합니다.exe 또는 기타 "마이그레이션 인식" 접근 방식은 옵션이 아니므로 SQL 스크립트를 제공하는 것이 필수입니다.

마침내 저는 해결책을 찾았습니다.제가 몰랐던 것은 다음과 같이 C# 코드에서 SQL 스크립트를 생성할 수 있다는 것입니다.

using System.Data.Entity.Migrations;
using System.Data.Entity.Migrations.Infrastructure;

var migrator = new DbMigrator(new Configuration());
var scriptor = new MigratorScriptingDecorator(migrator);
var sql = scriptor.ScriptUpdate("Name-Of-Source-Migration", "Name-Of-Target-Migration");

와 함께migrator.GetLocalMigrations()생성된 스크립트의 세분성을 완전히 제어할 수 있습니다.

언급URL : https://stackoverflow.com/questions/14325137/automate-ef-migrations-update-database-script

반응형