Bien, hice lo que me dijo Fabio, y los tests fallaron. Lo que terminé haciendo es una clase que hereda de MsSqlCeDialect que lo unico que hace es redefinir el método GetDataBaseSchema para devolver una nueva clase que hereda de MsSqlCeDataBaseSchema. Esta ultima clase redefine los métodos GetTables, GetColumns, GetForeignKeys, GetIndexColumns y GetIndexInfo, consultando las vistas INFORMATION_SCHEMA en vez de usar el método GetSchema de la connection (que es el que causaba el problema).
Después de terminar las dos clases, modifiqué el archivo hibernate.cfg.xml y los tests pasaron (Hibernate.Test.Tools.hbm2ddl.SchemaUpdate.MigrationFixture) Saludos! 2010/1/21 Fabio Maulo <[email protected]> > Si hay y pueden fallar. > > Los tests son los de NH y con cambiar hibernate.cfg.xml podes ver lo que > falla. > > El 21 de enero de 2010 13:23, Jose Selesan <[email protected]> escribió: > > Está bueno, lo voy a mirar un poco más, aunque ahora necesitaría safar con >> SchemaUpdate, así que vuelvo a preguntar: ¿Hay tests que prueben que >> SchemaUpdate funciona sobre SQL Server CE? >> >> Saludos >> >> >> 2010/1/20 Carlos Peix <[email protected]> >> >>> Bueno, en ese caso y aunque no es solucion inmediata a tu problema, te >>> recomiendo que mires esto: >>> >>> http://code.google.com/p/tarantino/ >>> >>> Nosotros usamos en una aplicacion que tiene un promedio de un deploy por >>> dia una solucion similar aunque hecha a mano por nosotros (porque no lo >>> encontramos a tiempo). >>> >>> De esta manera tenes un mecanismo seguro (testeable) de pasar cambios de >>> base de datos en entornos de QA y produccion. Incluso soporta la reversion >>> de cambios en forma igualmente automatizada y, sobre todo, flexible. >>> >>> ---------------------------------- >>> Carlos Peix >>> >>> 2010/1/20 Jose Selesan <[email protected]> >>> >>>> Entendiste bien, es eso lo que hago. La creación de esquema desde cero >>>> funciona bien, el problema es con el update. Con respecto a las >>>> limitaciones, soy conciente!! >>>> >>>> >>>> >>>> >>>> 2010/1/20 Carlos Peix <[email protected]> >>>> >>>>> Ahora que me doy cuenta veo que es posible que haya entendido mal tu >>>>> pregunta. >>>>> >>>>> Vos queres actualizar bases de datos reales (produccion) con los >>>>> cambios que correspondan la base de datos mediante SchemaUpdate? >>>>> >>>>> Porque yo he creado el esquema desde cero, sobre Ce con fines de >>>>> pruebas pero nunca con cambios incrementales ya que no me parece una >>>>> opcion >>>>> valida para datos de produccion. Incluso me parece que mas temprano que >>>>> tarde te vas a quedar corto con esa aproximacion, por ejemplo, cuando >>>>> tengas >>>>> que agregar columnas que no soporten null. >>>>> >>>>> >>>>> ---------------------------------- >>>>> Carlos Peix >>>>> >>>>> 2010/1/20 Jose Selesan <[email protected]> >>>>> >>>>>> Creería que sí, esto es un extracto de mi archivo de config >>>>>> >>>>>> <property >>>>>> name="connection.driver_class">NHibernate.Driver.SqlServerCeDriver</property> >>>>>> <property name="dialect">NHibernate.Dialect.MsSqlCeDialect</property> >>>>>> >>>>>> Estoy usando SQL CE 3.5 y .net framework 3.5 >>>>>> >>>>>> 2010/1/20 Carlos Peix <[email protected]> >>>>>> >>>>>>> Estas usando el driver y dialect especificos de CE? >>>>>>> >>>>>>> Mira que te agarra el tano y te corta los dedos si no... >>>>>>> >>>>>>> ---------------------------------- >>>>>>> Carlos Peix >>>>>>> >>>>>>> 2010/1/20 Jose Selesan <[email protected]> >>>>>>> >>>>>>>> Gente, otra pregunta. Estoy usando SchemaUpdate para simplificar un >>>>>>>> poco las actualizaciones de una aplicación. Hasta ahora venía de diez >>>>>>>> porque >>>>>>>> estaba usando SQL Server 2005. Pero ahora tengo la aplicación >>>>>>>> corriendo en >>>>>>>> un cliente con SQL Server CE y no funciona. Mirando el log de errores >>>>>>>> encuentro que no anda porque el método GetSchema tira una excepción >>>>>>>> del tipo >>>>>>>> NotSupportedException, y mirando un poco este KB: >>>>>>>> http://support.microsoft.com/kb/912435 me termina de cerrar todo. >>>>>>>> >>>>>>>> Mi pregunta puntual es: ¿hay alguna actualización de NH que haya >>>>>>>> solucionado esto? Actualmente estoy usando la 2.1.0.4000 >>>>>>>> >>>>>>>> Gracias >>>>>>>> >>>>>>>> -- >>>>>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>>>>> [email protected] >>>>>>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>>>> [email protected] >>>>>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>>> [email protected] >>>>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>>>>> >>>>> >>>>> >>>>> -- >>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>> [email protected] >>>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>>>> >>>> >>>> >>>> -- >>>> Para escribir al Grupo, hágalo a esta dirección: >>>> [email protected] >>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>>> >>> >>> >>> -- >>> Para escribir al Grupo, hágalo a esta dirección: >>> [email protected] >>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>> >> >> >> -- >> Para escribir al Grupo, hágalo a esta dirección: >> [email protected] >> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >> > > > > -- > Fabio Maulo > > > -- > Para escribir al Grupo, hágalo a esta dirección: > [email protected] > Para más, visite: http://groups.google.com/group/NHibernate-Hispano >
-- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano
