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

Verzování databáze SQL Server

Martin Fowler napsal můj oblíbený článek na toto téma, http://martinfowler.com/articles/evodb.html. Rozhodl jsem se neuvádět výpisy schémat pod správu verzí jako alumb a další navrhují, protože chci snadný způsob, jak upgradovat svou produkční databázi.

Pro webovou aplikaci, kde budu mít jednu instanci produkční databáze, používám dvě techniky:

Skripty pro upgrade databáze

Skripty upgradu sekvenční databáze, které obsahují DDL nezbytné k přesunutí schématu z verze N na N+1. (Tyto položky jsou součástí vašeho systému správy verzí.) Tabulka _version_history_, něco jako

create table VersionHistory (
    Version int primary key,
    UpgradeStart datetime not null,
    UpgradeEnd datetime
    );

dostane nový záznam pokaždé, když se spustí skript aktualizace, který odpovídá nové verzi.

To zajišťuje, že je snadné zjistit, jaká verze schématu databáze existuje, a že skripty upgradu databáze se spouštějí pouze jednou. Opět nejsou výpisy z databáze. Každý skript spíše představuje změny nutné přejít z jedné verze do druhé. Jsou to skripty, které použijete na svou produkční databázi, abyste ji "upgradovali".

Synchronizace izolovaného prostoru pro vývojáře

  1. Skript pro zálohování, dezinfekci a zmenšení produkční databáze. Spusťte to po každém upgradu na produkční DB.
  2. Skript pro obnovení (a v případě potřeby vyladění) zálohy na pracovní stanici vývojáře. Každý vývojář spustí tento skript po každém upgradu na produkční DB.

Upozornění:Moje automatické testy probíhají proti schématicky správné, ale prázdné databázi, takže tato rada nebude zcela vyhovovat vašim potřebám.



  1. Sqlite nevkládá data do 2. tabulky

  2. Jak zkopírovat data velké tabulky do jiné tabulky v SQL Server

  3. Jak navrhnout databázový model pro rezervační systém kina

  4. Jak vyloučím víkendové dny v dotazu SQL Server?