Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Stratégies de déploiement de base de données (SQL Server)

Pour ce problème précis, j'ai choisi d'utiliser un outil de migration :Migratordotnet .

Avec les migrations (dans n'importe quel outil), vous disposez d'une classe simple utilisée pour effectuer vos modifications et les annuler. Voici un exemple :

[Migration(62)]
public class _62_add_date_created_column : Migration
{
    public void Up()
    {
       //add it nullable
       Database.AddColumn("Customers", new Column("DateCreated", DateTime) );

       //seed it with data
       Database.Execute("update Customers set DateCreated = getdate()");

       //add not-null constraint
       Database.AddNotNullConstraint("Customers", "DateCreated");
    }

    public void Down()
    {
       Database.RemoveColumn("Customers", "DateCreated");
    }
}

Cet exemple montre comment vous pouvez gérer les mises à jour volatiles, comme l'ajout d'une nouvelle colonne non nulle à une table contenant des données existantes. Cela peut être automatisé facilement et vous pouvez facilement monter et descendre entre les versions.

Cela a été un ajout très précieux à notre build et a simplifié le processus immensément .

J'ai posté une comparaison des différents frameworks de migration dans .NET ici :http ://benscheirman.com/2008/06/net-database-migration-tool-roundup