J'essaie de comprendre comment utiliser la configuration de NHibernate avec le mappage pour mettre à jour les schémas de table, plutôt que de les supprimer et de les recréer.Comment mettre à jour les schémas de table de base de données avec la génération de schéma NHibernate?
Actuellement j'utilise l'obj NHibernate.Tool.hbm2ddl.SchemaExport
avec FluentNHibernate pour générer le schéma de base de données pour une base de données mysql. Bien que je ne puisse pas dire que c'est un énorme problème, chaque fois que j'appelle SchemaExport.Execute
sur la base de données, il va supprimer toutes les tables et les recréer ensuite.
Ce qui serait beaucoup plus cool, c'est si je pouvais simplement mettre à jour les structures de tables existantes en conservant les données si possible. Mais je ne veux pas vraiment utiliser un produit commercial, ou un générateur de code, parce que je n'aime pas la génération de code en général, et je n'en ai pas besoin assez pour envisager de payer pour cela. Donc j'espère que toute réponse gardera ces réserves à l'esprit.
nous ne pouvons pas modifier le réglage du champ une fois créé, par exemple, modifier la longueur de chaîne de nvarchar (255) à nvarchar (45), pouvons-nous? –
C'est une bonne question, la version de création de hbm2ddl vous permet de faire cela, mais j'ai remarqué parfois que je dois laisser tomber les tables avant que la création ne fonctionne correctement. –
Cela fonctionne brillamment, cette technique est également adaptée à Fluent NHibernate. – Contango