Как обновить схемы таблиц базы данных с помощью генерации схемы NHibernate?
Я пытаюсь выяснить, как использовать конфигурацию NHibernate с сопоставлением для обновления схем таблиц, а не отбрасывать и воссоздавать их.
В настоящее время я использую NHibernate.Tool.hbm2ddl.SchemaExport
obj с FluentNHibernate для создания схемы базы данных для базы данных mysql. Хотя я не могу сказать, что это огромная проблема, всякий раз, когда я вызываю SchemaExport.Execute
в базе данных, он будет SchemaExport.Execute
все таблицы, а затем воссоздавать их.
Что было бы более холодным, если бы я мог просто обновить существующие структуры таблиц, сохраняя данные там, где это возможно. Но я действительно не хочу использовать коммерческий продукт или генератор кода, потому что мне не нравится генерация кода в целом, и мне не нужно этого достаточно, чтобы я мог заплатить за него. Поэтому, надеюсь, любой ответ будет держать в поле зрения эти оговорки.
- Entity Framework 4 vs NHibernate
- Пакетные вставки с JPA / EJB3
- Бесконечная recursion с выпуском Jackson JSON и Hibernate JPA
- Можно ли динамически определять имена столбцов в Hibernate / JPA?
- Перечисление карты в JPA с фиксированными значениями?
- Hibernate, iBatis, Java EE или другой инструмент Java ORM
- Django - id vs pk
- Каково решение проблемы N + 1 в JPA и Hibernate?
- Почему django prefetch_related () работает только со всеми (), а не с фильтром ()?
- Hibernate / JPA - аннотирование методов бобов и полей
- Что такое «собственная сторона» в сопоставлении ORM?
- Родные запросы JPA / Hibernate не распознают параметры
- Есть ли способ вызвать хранимую процедуру с помощью Dapper?
Объект SchemaUpdate обеспечивает обновление схемы базы данных, создавая и выполняя ряд операторов SQL UPDATE (а также операторов ограничений), когда это void Execute(bool script, bool doUpdate)
функция void Execute(bool script, bool doUpdate)
. Класс SchemaUpdate находится в пространстве имен NHibernate.Tool.hbm2ddl
, которое можно найти в файле Nhibernate.dll.
SchemaUpdate упоминается в главе 15 руководства по набору инструментов nhibernate 1.0.2 (раздел 15.1.5).
«Часто задаваемые вопросы по NHibernate» (ссылка теперь истек) – более полный пример использования 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); }
Проверьте SchemaUpdate .