2010-12-06 7 views
1

Notre produit prend en charge plusieurs bases de données. À l'heure actuelle, nous soutenons FireBird et MSSql et il y a un futur support pour Oracle. Lorsque nous déployons une mise à jour pour notre produit, il est possible que nous ayons aussi besoin de mettre à jour le schéma de la base de données du client.Prise en charge de plusieurs SGBD; Meilleure stratégie de mise à jour des bases de données clients lors de la mise à jour?

Traditionnellement, nous avons des scripts qui sont assortis à la version DB, ce qui ferait des choses comme "Alter table add column" qui sont exécutées afin d'amener la base de données à la bonne version. Cela devient un problème parce que nous devons maintenir deux ensembles de scripts sql (avec d'autres sur le chemin si nous ajoutons Oracle au mixage).

Nous utilisons le Entity Framework dans notre couche db. L'EF contient déjà un schéma de la base de données. Je me demande - existe-t-il un moyen pratique d'utiliser l'EF et sa connaissance du schéma pour gérer les mises à jour de la base de données client?

EDIT -

C'est EF 4.0

Répondre

-1

Vous ne l'avez pas mentionné quelle version de EF que vous utilisez. En V4, vous pouvez utiliser le modèle "Code d'abord". Découvrez ScottGu's post. Je ne suis pas sûr à 100% s'il est supporté par toutes les bases de données dont vous avez besoin. [edit] Cela créera uniquement de nouveaux schémas, pas de mise à jour des schémas existants [/ edit]

Cela peut être un travail, mais il peut être utile de passer à nHibernate, qui prend en charge une plus grande variété de DB et met à jour automatiquement le schéma. .

+2

Le problème avec le code de la première génération de schéma automatique est qu'il ne marche pas versioning de support, juste gouttes votre base de données et reconstitue encore, je ne pense pas que ses clients veulent que. Il en va de même avec la génération de schéma Nhibernate fluide, l'équipe EF est supposée travailler sur une solution de migration pour le prochain CTP. – ryudice

+0

Découvrez http://stackoverflow.com/questions/366176/how-to-update-database-table-schemas-with-nhibernate-schema-generation. Je pensais EF4 ferait la même chose, mais je ne trouve rien –

+0

Trouvé un non sur EF4 (officiellement): http://weblogs.asp.net/scottgu/archive/2010/07/23/entity-framework-4 -code-premier-custom-database-schema-mapping.aspx # 7572584 –

Questions connexes