Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Datenbankbereitstellungsstrategien (SQL Server)

Für genau dieses Problem habe ich mich für ein Migrationstool entschieden:Migratordotnet .

Bei Migrationen (in jedem Tool) haben Sie eine einfache Klasse, mit der Sie Ihre Änderungen durchführen und rückgängig machen können. Hier ist ein Beispiel:

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

Dieses Beispiel zeigt, wie Sie flüchtige Aktualisierungen handhaben können, z. B. das Hinzufügen einer neuen Nicht-Null-Spalte zu einer Tabelle mit vorhandenen Daten. Dies kann einfach automatisiert werden, und Sie können problemlos zwischen den Versionen wechseln.

Dies war eine wirklich wertvolle Ergänzung unseres Builds und hat den Prozess immens rationalisiert .

Ich habe hier einen Vergleich der verschiedenen Migrationsframeworks in .NET gepostet:http ://benscheirman.com/2008/06/net-database-migration-tool-roundup