Verwalten meiner Datenbank in der Quellcodeverwaltung

8

Da ich mit einem neuen Datenbankprojekt arbeite (innerhalb von VS2008), und ich noch nie eine Datenbank von Grund auf neu entwickelt habe, habe ich sofort angefangen, eine Datenbank innerhalb der Quellcodeverwaltung (in diesem Fall Subversion) zu verwalten / p>

Ich habe einige Informationen über SO gefunden, einschließlich dieses Beitrags: Entwicklung behalten Datenbanken in mehreren Umgebungen synchron . Eine der Antworten wies darauf hin eine Reihe von Links, von denen alle gute, nützliche Informationen hatten.

Ich habe eine Folge von Beiträgen

Das macht für mich Sinn (wenn ich das wirklich richtig lese). Wenn ich jedoch etwas vermisse, würde ich mich über eine Korrektur oder zusätzliche Anleitung freuen. Außerdem möchte ich noch eine weitere Frage stellen: Bedeutet dies auch, dass ich die Dateien mdf oder ldf , die erstellt werden, NICHT einchecken soll Visual Studio?

Danke für jede Hilfe und zusätzliche Einblicke. Immer geschätzt.

    
JasCav 05.05.2010, 19:01
quelle

5 Antworten

6

Das ist richtig, Sie sollten Skripte einchecken, nicht die Datenbankdatei selbst.

Ich bin kein Fan davon, aus Testdaten zu bauen, es sei denn, die Daten selbst werden die Größe von Daten nachahmen, die die Produktion hat (oder im Fall von neuen Datenbanken beabsichtigt ist). Warum? Weil das Schreiben von Code gegen eine Tabelle mit 100 Datensätzen Ihnen nicht sagt, ob es bei 10.000.000 Datensätzen rechtzeitig ausgeführt wird. Ich habe viel zu viele schlechte Design-Entscheidungen von Leuten getroffen, die denken, dass ein kleiner Datensatz für die Entwicklung in Ordnung ist.

Hier erlauben wir Entwicklern nicht, eine separate Datenbank auf ihrer Box zu haben (was normalerweise die Größe der Datenbank begrenzt, da sie nicht ein Server ist, der an SAN angeschlossen ist), stattdessen müssen sie gegen die Dev-Datenbank arbeiten regelmäßig aktualisiert von prod (und dann laufen alle neuen dev-Skripte), um die Daten in der richtigen Größe zu halten. Ich denke, es ist wichtig, dass Ihre dev-Datenbank so gut wie möglich mit der Gerätekonfiguration, der Größe der Datenbank usw. zusammenpasst. Nichts frustrierender als lange Zeit damit zu verbringen, etwas zu entwickeln, das entweder gar nicht funktioniert oder sein muss sofort abgebaut, weil es das System zu sehr verlangsamt.

Springt jetzt von meiner Seifenkiste herunter.

    
HLGEM 05.05.2010, 19:36
quelle
2

Das Einchecken von Skripts ist eine gute Idee, da die Quellcodeverwaltung am besten für die Arbeit mit Textdateien und nicht für Binärdateien geeignet ist. Unterschiede in den Skriptdateien können einfach als Teil der restlichen Codeänderungen im Zusammenhang mit der Datenbankänderung überprüft werden. Zusätzlich zum Einchecken der Datenbankskripts checken wir auch einen Datenbankschema-Snapshot ein. Mit diesem Datenbankschema-Snapshot können wir überprüfen, ob das Schema in der Produktion mit dem erwarteten Schema für die jeweilige Version des Produkts übereinstimmt. Außerdem ist der Snapshot des Datenbankschemas ein praktischer Weg, um mit einem einfachen Texteditor nach Spalten und Tabellen zu suchen.

    
Sualeh Fatehi 06.05.2010 00:34
quelle
1

Ich benutze DataConstructor, bin aber voreingenommen, weil ich es geschrieben habe.

    
MaxGuernseyIII 05.05.2010 19:22
quelle
0
SQLDev 12.05.2010 14:36
quelle
0

Sie könnten ein Tool wie Liquibase verwenden, um die Datenbankskripte zu verwalten. Es ist wirklich ein Datenbank-Upgrade-Framework, so dass es die Schritte verfolgt, die bereits ausgeführt wurden. Wenn Sie beispielsweise die Produktion aktualisieren möchten, werden nur die neuen Schritte ausgeführt.

    
AWhitford 09.10.2011 16:00
quelle