64 votes

Moteur de migration .NET

Une fois, j'étais persuadé que Microsoft travaillait sur un cadre de migration officiel semblable à un rubis. Cependant, je n'ai pas pu trouver d'informations supplémentaires (ni même la source originale de mes convictions).

Est-ce que quelqu'un connaît des informations sur un framework de migration officiel ou éventuellement open source?

100voto

Andrew Peters Points 6012

Cet ensemble d' outils de migration de base de données .NET fournit un bon aperçu des options.

Les options listées sont:

  • Migrations Rails s'exécutant sur SQL Server
  • RikMigrations
  • Tarantino
  • Migrator.NET
  • Migrations de machine
  • Migrations Subsoniques
  • dbDeploy.NET

10voto

Spoike Points 32082

Une autre alternative est le Migrator.Net projet (au moment de l'écriture, c'est dans la version 0.7). Vous écrivez des classes de migration avec la syntaxe suivante:

using Migrator.Framework;
using System.Data;

namespace DBMigration
{
    [Migration(20080401110402)]
    public class 001_CreateUserTable : Migration
    {
        public void Up()
        {
            Database.CreateTable("User",
                    new Column("UserId", DBType.Int32, ColumnProperties.PrimaryKeyWithIdentity),
                    new Column("Username", DBType.AnsiString, 25)
                );
        }

        public void Down()
        {
                Database.RemoveTable("User");
        }
    }
}

...et la migration des classes d'exécuter dans un ordre séquentiel dans un MSBuild ou NAnt script.

8voto

Andy White Points 36586

Voici un autre projet moderne et populaire: les migrations courantes

6voto

ferventcoder Points 2703

De la rotonde. Certains de la même idiomes comme Tarantino où vous écrire des scripts SQL (certaines sociétés comme les nôtres sont dans que). Voir le wiki sur github "Professionnels Base de données de gestion des versions et de la Gestion du Changement"

La configuration minimale pour RoundhousE (RH) pour fournir un nom de base de données ou la chaîne de connexion. Il s'exécute à contre-courant de dossier à la recherche de scripts de migration:

rh /d bob

Vous pouvez fournir de la Rotonde un dossier avec les dossiers (tous facultatifs):

  • AlterDatabase
  • RunAfterCreateDatabase
  • Jusqu'
  • Fonctions
  • Vues
  • Sprocs
  • Index
  • Les autorisations

et il exécutera tout dans ces dossiers. Les éléments du dossier ne seront exécutées qu'une seule fois. C'est où vous mettez DDL/DML changements. Le reste sont des temps de scripts, ce qui signifie que lorsque l'on a détecté le fichier a été modifié, il sera exécuté. Sauf les autorisations de dossier, qui est considéré comme un chaque fois un ensemble de scripts dans le cas où vous effectuez l'auto câblage des autorisations.

RH est extrêmement configurable, tout, depuis les noms des dossiers ci-dessus pour le nom des tables où RH garde d'information sur la migration.

La gestion des versions est fait de la façon dont vous voulez, il suffit de fournir des RH d'une dll pour récupérer le fichier de la version à partir, ou un fichier xml et xpath pour les informations de version. Nous version basée sur contrôle de code source, de sorte que vous pouvez toujours voir les scripts comme ils l'étaient dans la source. Cela signifie que nous permettre de plusieurs référentiels à la version de la base de données.

C'est un simple fichier exécutable, mais est également livré avec une intégrable DLL et MSBuild DLL.

Il a l'idée de faire une actualisation de la base de données, ce qui signifie que vous pouvez mettre à jour votre base de données sans quitter Visual Studio!
La rotonde + NHibernate == Reconstruire Votre Base de données sans quitter Visual Studio!

Et l'avertissement: j'ai eu une partie substantielle dans l'écriture de cet outil parce que nous ne pouvions pas trouver quelque chose qui permettrait de répondre à l'audit de préoccupations, de nous fournir avec une faible quantité de maintenance, et d'être un peu plus intelligent sur les migrations.

2voto

Dan Tanner Points 413

Ma société de conseil utilise Migrator.NET pour une poignée de projets .NET en production. Un de mes collègues a apporté des améliorations substantielles au projet afin de le rendre plus prêt pour la production. Il ya certainement encore place à l’amélioration, mais c’était le meilleur choix lorsque nous avons fait notre choix il ya un an.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X