Безопасно ли NHibernate SchemaUpdate в производственном коде? - PullRequest
14 голосов
/ 14 января 2010

Для простоты. Я использую Automapping Fluent NHibernate в сочетании с SchemaUpdate NHibernate во время выполнения. При каждом запуске Automapper создает сопоставления для всех классов сущностей, а SchemaUpdate применяет схему к существующей базе данных. Я был приятно удивлен, что он работает правильно и с пустой базой данных. До сих пор он отлично работал в среде разработки и позволил мне довольно быстро реагировать на ошибки.

У меня вопрос, достаточно ли он надежен, чтобы оставить его в рабочем коде? Очевидно, что он не должен запускаться каждый раз, когда программа запускается в производственной среде, но это было бы полезно для дополнительных обновлений продукта (хотя я не планирую вносить какие-либо существенные изменения в домен после того, как продукт поставляется).

(Возможно, мой реальный вопрос должен состоять в том, насколько безопасно использовать эти два инструмента в сочетании?)

Обновление

Приложение имеет две версии: автономный рабочий стол и многопользовательский клиент / сервер. Также из-за специфики бизнес-сферы (налоговое программное обеспечение) я могу позволить себе ежегодно начинать с чистой базы данных.

Ответы [ 4 ]

13 голосов
/ 14 января 2010

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

Одно это должно удерживать вас от этого подхода, независимо от качества / надежности кода NHibernate.

9 голосов
/ 26 января 2010

Я бы не стал рисковать. Что хорошо работает, так это запустить его на промежуточном сервере, который был восстановлен с производства, а затем использовать инструмент сравнения баз данных (например, Red Gate) для проверки изменений и создания сценария.

8 голосов
/ 26 января 2010

Возможно, вы захотите учесть, что SchemaUpdate всегда будет вносить аддитивные и неразрушающие изменения, что приведет к появлению устаревших столбцов и столбцов, допускающих использование значения NULL.

Другими словами, абсолютно не для производственного использования.

2 голосов
/ 14 января 2010

Зависит от того, насколько важны данные! Я сомневаюсь, что это хорошая идея для банковской системы. У меня не было проблем с обновлением кроме одной вещи. Иногда это не переименовывает должным образом. Более того, это угроза безопасности, связанная с учетной записью, которая может изменять схему следующим образом:)

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