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.

Reply via email to