우리는 EntityFramework를 사용한 데이터베이스 첫 번째 접근법을 사용하고 있습니다. 우리는 여러 고객을 보유하고 있으며 새로운 제품 버전을 배포 할 때 SQL Compare
과 같은 도구를 사용하여 DB 스키마 변경 사항을 "수동으로"적용합니다.데이터베이스 우선 접근을위한 EF 마이그레이션?
EF 마이그레이션이 고객 DB에 변경 사항을 자동으로 적용하는 방법은 있습니까?
우리는 EntityFramework를 사용한 데이터베이스 첫 번째 접근법을 사용하고 있습니다. 우리는 여러 고객을 보유하고 있으며 새로운 제품 버전을 배포 할 때 SQL Compare
과 같은 도구를 사용하여 DB 스키마 변경 사항을 "수동으로"적용합니다.데이터베이스 우선 접근을위한 EF 마이그레이션?
EF 마이그레이션이 고객 DB에 변경 사항을 자동으로 적용하는 방법은 있습니까?
내가 아는 한 EF 마이그레이션은 CodeFirst를 대상으로하는 제품이며 데이터베이스 우선 작동을 지원하지 않습니다.
CodeFirst는 사용자가 데이터베이스를 수동으로 변경하지 않는다고 가정합니다. 데이터베이스에 대한 모든 변경 사항은 코드 첫 번째 마이그레이션을 거치게됩니다.
을 확인하십시오. 감사합니다. , 그것은 update-scripts가 현재 EF와 함께 갈 수있는 유일한 방법 인 것 같습니다. – Shaddix
좋은 대안은 Database projects/SSDT이고 스키마를 비교하는 것입니다. –
있다고 생각합니다! 먼저 코드를 계속 진행해야합니다.
public class MyDbContext : DbContext
{
public MyDbContext()
: base("Name=DefaultConnection")
{
}
// DbSets ...
}
변화 그 첫 번째 코드를 사용하여 시작하려면 다음과 모든 마법 도구 (마이그레이션 등 :
는 EF DB가 먼저 당신을 위해 만든 다음 DbContext를 가지고 있다고 가정하자,이 작업을 수행하려면 .) : 그것은 EF는 이름 YourDbFileName하여 web.config 파일에서 로컬 컴퓨터에 SQL Express를 사용하여 새 연결 문자열을 생성하는 원인이public class MyDbContext : DbContext
{
public MyDbContext()
: base("YourDbFileName")
{
}
// DbSets ...
}
, 단지 초기 DefaultConnection DB 같은 것을 먼저 만들었습니다.
귀하의 서버 및 기타 옵션에 따라 YourDbFileName ConStr을 편집하면됩니다.
그냥 DbContext 자식 개체에 대해보고이 방법을 찾습니다
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
이 댓글이 경우
throw new UnintentionalCodeFirstException();
은 다음 예외가 마이그레이션 작업에 던져되지 않을 것입니다. 상상할 수 있듯이, 마이그레이션은이 파트를 사용하여 각 엔티티의 구성이 어떤 테이블을 가지고 있는지 알 수 있습니다.
죄송합니다. 자세한 내용은 알려지지 않았지만, 더 자세히 알고 싶다면이 부분을 편집하여 기쁘게 생각합니다.
물론 나는 아무 것도 풀어주지 않을 것입니다. Code First Migration 기능은 데이터를 보존하는 것처럼 보입니다. DB와 비슷한 것을 원합니다. 사실 간단한 시나리오 - 새 테이블 추가, 새로운 필드 등 - – Shaddix
데이터베이스를 사용하여 EF 마이그레이션과 비슷한 기능을 원하면 [FluentMigrator] (https://github.com/fluentmigrator/fluentmigrator) –