Ich verwende SchemaUpdate
, um meine hbms
mit der bestehenden Datenbank zu synchronisieren. Die Datenbank wurde kürzlich basierend auf hbms
erstellt und ist vollständig auf dem neuesten Stand. Aber SchemaUpdate
generiert alle Fremdschlüsseleinschränkungen erneut.
Angenommen, Sie haben Student
und Teacher
. Student
hat eine Assoziation zu Teacher
mit dem Namen ArtTeacher
. ArtTeacher
ist ein Fremdschlüssel von Student
bis Teacher
. Angenommen, die Datenbank ist aktuell und enthält derzeit Student
, Teacher
und ihre Fremdschlüsselbeziehung. Also sind HBM
und Database
gleichwertig. Wissen SchemaUpdate
darf nichts tun, aber wenn ich seine generierten Skripte sehe, wird der Fremdschlüssel erneut erzeugt.
Warum passiert das? Gibt es eine Möglichkeit, es zu vermeiden?
Das Geheimnis besteht darin, sicherzustellen, dass Sie Namen für die Fremdschlüssel angeben, andernfalls generiert NHibernate einen zufälligen Namen, der nicht mit dem vorhandenen Schema übereinstimmt.
(Ich habe diese Antwort aus dem Google Cache von Afshars Blogpost gefischt).
Tags und Links database-schema nhibernate schema