Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Estratégias de implantação de banco de dados (SQL Server)


Para esse mesmo problema optei por usar uma ferramenta de migração:Migratordotnet .

Com as migrações (em qualquer ferramenta) você tem uma classe simples usada para realizar suas alterações e desfazê-las. Aqui está um exemplo:
[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 exemplo mostra como você pode lidar com atualizações voláteis, como adicionar uma nova coluna não nula a uma tabela com dados existentes. Isso pode ser automatizado facilmente e você pode subir e descer facilmente entre as versões.

Esta foi uma adição realmente valiosa à nossa construção e simplificou o processo imensamente .

Publiquei uma comparação das várias estruturas de migração no .NET aqui:http ://benscheirman.com/2008/06/net-database-migration-tool-roundup