Yes, I fully agree that any migration behavior needs to be completely opt-in. To be clear I'm not proposing to rewrite any of the current Sql generation code. I proposed to implement this as a library *separate library outside NHibernate* proper which implements a workflow with the two-step process and customizable migration. All I'm asking for here is some decorator methods on Dialect which provide the necessary chunks of sql and flags to make stuff sql-flavor independent.
For example, when altering column definitions: Sql Server uses "Alter [Table] Alter [Column]...", Oracle uses"Alter [Table] Modify [Column]", Firebird and SQLite don't support altering columns. One of the commits in the pull request adds 2 properties to Dialect, *SupportsAlterColumn* and *AlterColumnString* I'm sure the DDL generation functionality could be rewritten to use the underlying model that a script is a series of operations which is in turn a series of statements, but why bother? It seems to work but there aren't unit tests around it now so I wouldn't feel safe proposing changes. The pull request is here: https://github.com/nhibernate/nhibernate-core/pull/282 On Friday, July 11, 2014 4:46:11 PM UTC-4, Darren Kopp wrote: > > You need to make this behavior opt-in, otherwise people will upgrade and > possibly lose data because something may not be referenced in the model > anymore (or perhaps multiple types mapped to same table returning different > things). Entity framework is a two-step process and you can customize the > migration, which mitigates this issue, but schema migration is not > customizable and thus should not have this behavior enabled by default. > > On Friday, July 11, 2014 8:33:01 AM UTC-6, Jeffrey Becker wrote: >> >> Ok, pull request is submitted. > > -- --- You received this message because you are subscribed to the Google Groups "nhibernate-development" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
