Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Strategie di distribuzione del database (SQL Server)

Proprio per questo problema ho scelto di utilizzare uno strumento di migrazione:Migratordotnet .

Con le migrazioni (in qualsiasi strumento) hai una semplice classe utilizzata per eseguire le modifiche e annullarle. Ecco un esempio:

[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");
    }
}

Questo esempio mostra come gestire gli aggiornamenti volatili, ad esempio l'aggiunta di una nuova colonna non nulla a una tabella che contiene dati esistenti. Questo può essere automatizzato facilmente e puoi facilmente passare da una versione all'altra.

Questa è stata un'aggiunta davvero preziosa alla nostra build e ha semplificato il processo immensamente .

Ho pubblicato un confronto tra i vari framework di migrazione in .NET qui:http ://benscheirman.com/2008/06/net-database-migration-tool-roundup