sql >> Databáze >  >> RDS >> Sqlserver

Strategie nasazení databáze (SQL Server)

Právě pro tento problém jsem se rozhodl použít nástroj pro migraci:Migratordotnet .

S migracemi (v libovolném nástroji) máte jednoduchou třídu, která se používá k provedení změn a jejich vrácení zpět. Zde je příklad:

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

Tento příklad ukazuje, jak můžete zacházet s nestálými aktualizacemi, jako je přidání nového sloupce bez nuly do tabulky, která má existující data. To lze snadno automatizovat a mezi verzemi můžete snadno přecházet nahoru a dolů.

To byl opravdu cenný doplněk k našemu sestavení a proces nesmírně .

Srovnání různých migračních rámců v .NET jsem zveřejnil zde:http ://benscheirman.com/2008/06/net-database-migration-tool-roundup



  1. Jaké je největší ID číslo, které může autoinkrement vytvořit v mysql

  2. Kolik schémat lze vytvořit v postgresu

  3. MySQL Používáte bezpečný režim aktualizace a pokusili jste se aktualizovat tabulku bez WHERE

  4. svázat hodnoty INSERT INTO mysql perl