2011-08-30 1 views
12

J'étudie actuellement les options possibles d'un cadre/outil de migration. J'aime l'idée des migrations ruby ​​sur lesquelles se basent les frameworks ci-dessus.migrator.net vs fluentmigrator vs migsharp

Alors je demande votre expérience, vos opinions et peut-être une comparaison entre eux. Les utilisez-vous en production?


merci pour les réponses. Le but de cette question était de se faire une idée des outils les plus utilisés dans la communauté des développeurs, mais il semble que les migrations ne soient pas un sujet brûlant ici.

Quoi qu'il en soit, je l'ai décidé d'aller avec MigSharp comme base de code semble être assez propre et il est assez facile à manipuler et a construire à l'appui pour MS SQL CE. Deuxième finaliste aurait été FluentMigrator où je ne pouvais pas produire un exemple de travail pour l'édition compacte.

Vive

+0

Classique gorila vs shark http://blog.stackoverflow.com/2011/08/gorilla-vs-shark/ – regisbsb

Répondre

9

j'utilise FluentMigrator dans la production, et je suis un contributeur de longue date à FM. Je pense que votre question est générale. sois plus précis. En outre, FM a un groupe google qui est assez actif si vous voulez des informations FM.

FM est dérivé de migrator.net, si je me souviens bien. Il utilise une syntaxe fluide et prend en charge plusieurs bases de données. Nous nous sommes inspirés des migrations de rails, mais ce n'est certainement pas un port. Ça vaut le coup de vérifier.

Une chose que j'ai appris est de ne pas mettre vos migrations dans le même ensemble que vous application que le code. Séparez-les en un ensemble de migration et utilisez-les pour migrer vos bases de données.

En outre, vous devez toujours travailler sur plusieurs environnements pour éviter les problèmes avec les migrations courent tout droit contre la production. J'ai toujours au moins un environnement de développement et de production, et la plupart du temps il y a aussi un environnement de test.

3

J'utilise mig #.

Il fonctionne bien, mais vous aurez besoin d'avoir des lignes directrices pour l'utilisation - comme les migrations peuvent se compliquer.

Nous utilisons le numéro de séquence sur la fin de nos migrations plutôt qu'un horodatage. C'est parce que nous ne savons pas quand l'horodatage date a été défini (quand ils ont commencé le changement de code source, juste avant de s'engager, quelque temps entre) différents développeurs pourraient utiliser des approches différentes.

Des noms tels que Migration_0000034.cs vous donnent beaucoup d'espace.

+0

Dites-vous que les migrations se compliquent avec Mig # ou en général? – Dejan

+0

BTW, le manuel Mig # peut être trouvé ici: https://github.com/dradovic/MigSharp/wiki – Dejan

0

À ce stade, je voudrais rester avec migrator.net. J'aime la promesse de FluentMigrator, mais il ne semble pas y avoir de meilleur développement actif que migrator.net (voir les problèmes et tirer les requêtes qui ont langui sur leur site github).

Il n'y a pas non plus de moyen facile de faire un ExecuteScalar(). Je l'ajouterais, mais je ne veux pas créer ma propre fourche, et je ne vois pas pourquoi une requête de tirage atterrirait dans le maître. (Execute.WithConnection est une action donc elle se déclenchera à la demande plutôt que lorsque j'en aurai besoin)

Donc pour moi, je reviens à migrator.net.