База данных «Миграция» с NHibernate

У меня есть программа, использующая NHibernate, недавно мы произвели обновление модели базы данных, добавили таблицу. Теперь мы используем SQLite для синхронизации частей «центральной» базы данных, чтобы включить автономную поддержку в программе. Теперь начинаются проблемы ... Когда у пользователя есть обновленная версия программы, но старая версия базы данных NHibernate не будет работать должным образом.

Поэтому я хотел бы «перенести» базу данных в новую схему. У меня есть тест с SchemaExport , но он очищает базу данных от всех его данных. Нужно ли вручную создавать таблицу?

Кроме того, я замечаю это только тогда, когда пытаюсь получить доступ к кружевному загруженному свойству в моей базе данных. Есть ли способ проверить, соответствует ли модель схеме базы данных?

Всего 1 ответ


Используйте взамен SchemaUpdate .

Он проверит вашу текущую схему с файлами сопоставления. Если какие-либо изменения в файлах сопоставления (таблица добавлена, как вы сказали) будут отражены в основной СУБД. DDL будет автоматически сгенерирован NHibernate и будет выполнен, чтобы соответствовать изменениям.

Пример кода выглядит примерно так:

SchemaUpdate schemaUpdate = new SchemaUpdate(configuration);
schemaUpdate.Execute(false, true);

В зависимости от ваших потребностей, вы можете поиграть с двумя параметрами Execute - без объяснений.


Есть идеи?

10000