2008-11-10 20 views
5

Ich verwende NHibernate-Zuordnungen als ein definierendes Schema für meine App in der Entwicklungsphase und für die Schemadefinition, die ich NHibernate.Tool.hbm2ddl.SchemaExport() Methode zu generieren ein createscript.Ist Configuration.GenerateSchemaUpdateScript() in NHibernate eine gute Möglichkeit, Datenbankschemaänderungen zu verwalten

Nun, ich in Betracht gezogen haben, mit der Configuration.GenerateSchemaUpdateScript() Methode Datenbank changescripts wie folgt zu generieren:


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)); 
} 

Danach werde ich das Schema Update-Skript speichern Skript-Dateien-Zeitstempel genannt.

Ist dies eine gute Möglichkeit, Schemaänderungen in NHibernate zu verwalten?

Gibt es irgendwelche großen Nachteile?

Antwort

0

Kurz gesagt - es kommt darauf an. Ich habe es verwendet, um ein Skript zu erstellen, das ich dann manuell bearbeitet habe, aber ich bin sicher, ich lese irgendwo, dass es keine neuen Nicht-Null-Spalten für existierende Tabellen erstellen wird - was sinnvoll erscheint, wie würde NHibernate wissen, wie man auffüllt die Spalten?

+0

yeah, die Nicht-Nullen sind ein Problem. Die fehlende Standard-Wert-Funktion für Spalten wäre hier jedoch nett. Aber in den meisten Fällen gibt es keine Möglichkeit, den SQL-Server manuell anzupassen. –

Verwandte Themen