sql >> Base de Datos >  >> RDS >> Sqlserver

Estrategias de implementación de bases de datos (SQL Server)

Para este mismo problema opté por utilizar una herramienta de migración:Migratordotnet .

Con las migraciones (en cualquier herramienta) tiene una clase simple que se usa para realizar sus cambios y deshacerlos. He aquí un ejemplo:

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

Este ejemplo muestra cómo puede manejar actualizaciones volátiles, como agregar una nueva columna no nula a una tabla que tiene datos existentes. Esto se puede automatizar fácilmente y puede subir y bajar fácilmente entre versiones.

Esta ha sido una adición realmente valiosa a nuestra compilación y ha agilizado el proceso inmensamente. .

Publiqué una comparación de varios marcos de migración en .NET aquí:http ://benscheirman.com/2008/06/net-database-migration-tool-roundup