programing

NHibernate 스키마 생성으로 데이터베이스 테이블 스키마를 업데이트하는 방법은 무엇입니까?

procenter 2021. 1. 15. 19:45
반응형

NHibernate 스키마 생성으로 데이터베이스 테이블 스키마를 업데이트하는 방법은 무엇입니까?


테이블 스키마를 삭제하고 다시 만드는 대신 매핑과 함께 NHibernate 구성을 사용하여 테이블 스키마를 업데이트하는 방법을 알아 내려고합니다.

현재 저는 NHibernate.Tool.hbm2ddl.SchemaExportFluentNHibernate와 함께 obj를 사용하여 mysql 데이터베이스에 대한 데이터베이스 스키마를 생성하고 있습니다. 큰 문제라고 말할 수는 없지만 SchemaExport.Execute데이터베이스를 호출 할 때마다 모든 테이블을 삭제 한 다음 다시 만들 것입니다.

가능한 한 데이터를 유지하는 기존 테이블 구조를 업데이트 할 수 있다면 더 멋진 방법이 될 것입니다. 그러나 저는 일반적으로 코드 생성을 좋아하지 않기 때문에 상용 제품이나 코드 생성기를 사용하고 싶지 않으며 비용을 지불 할만큼 충분히 필요하지 않습니다. 따라서 모든 답변이 이러한 경고를 염두에두기를 바랍니다.


들 SchemaUpdate 객체는 분명히 생성하고 일련의 실행하여 데이터베이스 스키마 업데이트를 제공하는 SQL UPDATE의 그것의 문 (뿐만 아니라 제약 문) void Execute(bool script, bool doUpdate)함수가 호출됩니다. SchemaUpdate 클래스는 NHibernate.Tool.hbm2ddlNhibernate.dll 파일에서 찾을 수있는 네임 스페이스에 있습니다.

SchemaUpdate는 nhibernate 1.0.2 도구 세트 가이드의 15 장에 언급되어 있습니다 (섹션 15.1.5).

"NHibernate FAQ"에는 SchemaUpdate를 사용하는 방법에 대한보다 완전한 예제가 있습니다.

[Test]
public void Update_an_existing_database_schema()
{
    _cfg = new Configuration();
    _cfg.Configure();
    _cfg.AddAssembly(Assembly.LoadFrom("DataLayer.dll"));
    var update = new SchemaUpdate(_cfg);
    update.Execute(true, false);
}

참조 URL : https://stackoverflow.com/questions/366176/how-to-update-database-table-schemas-with-nhibernate-schema-generation

반응형