Является ли Configuration.GenerateSchemaUpdateScript () в NHibernate хорошим способом управления изменениями схемы БД - PullRequest
5 голосов
/ 10 ноября 2008

Я использую сопоставления NHibernate в качестве определяющей схемы для моего приложения на этапе разработки, а для определения схемы я использую метод NHibernate.Tool.hbm2ddl.SchemaExport() для создания createScript.

Теперь я рассмотрел использование метода Configuration.GenerateSchemaUpdateScript() для генерации сценариев изменений базы данных, таких как:


var dialect = Dialect.GetDialect(configuration.Properties);
string[] schemaUpdateScript;
using (var conn = new SqlConnection(
        configuration.GetProperty("connection.connection_string")))
{
  conn.Open();
  schemaUpdateScript = configuration.GenerateSchemaUpdateScript(dialect, 
                            new DatabaseMetadata(conn, dialect));
}

После этого я сохраню скрипт обновления схемы в файлах скриптов с именами временных меток.

Это хороший способ управлять изменениями схемы в NHibernate?

Есть ли серьезные недостатки?

1 Ответ

0 голосов
/ 11 ноября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...