Frage

Sagen wir, ich habe eine Website und eine Datenbank von dieser Website lokal auf meinem Computer gehostet (für Entwicklung) und eine andere Datenbank gehostet (für die Produktion) ... dh zuerst muss ich die Änderungen auf dem dev db und dann mache ich die Änderungen zum Produkt DB.

Was ist der beste Weg, um die Änderungen zu übertragen, die ich auf der lokalen Datenbank der gehosteten Datenbank haben?

Wenn es darauf ankommt, ich bin mit MS SQL Server (2008)

War es hilfreich?

Lösung

Der richtige Weg, dies mit Visual Studio und SQL Server zu tun ist, ein Datenbank-Projekt , um die Web-App-Lösung hinzuzufügen. Das Datenbank-Projekt sollte SQL-Dateien, die die gesamte Datenbank vollständig auf einen neuen Server neu erstellen können zusammen mit allen notwendigen Tabellen, Prozeduren Benutzer und Rollen.

Auf diese Weise werden sie in der Quellcodeverwaltung für den ganzen Rest des Codes auch enthalten.

Es gibt ein Änderungen Unterverzeichnis in dem Datenbank-Projekt, wo ich die SQL-Dateien setzen, die keine neue Änderungen oder Ergänzungen die Datenbank für nachfolgende Versionen gelten.

Die SQL in den Dateien sollten mit der richtigen geschrieben werden „wenn vorhanden“ blockiert, so dass es sicher mehrere Male auf eine bereits aktualisierte Datenbank ohne Fehler ausgeführt werden kann.

In der Regel sollten Sie nie Ihre Änderungen direkt in der Datenbank vornehmen - stattdessen den SQL-Skript in dem Projekt ändern und es in die Datenbank zu, dass Ihr Quellcode (die SQL-Dateien) zu machen sind immer auf dem neuesten Stand <. / p>

Andere Tipps

Wir tun dies in der (Ruby on) Schienen Welt von „Migration“, schreiben die Erfassung der Änderungen, die Sie an jedem Punkt auf der DB-Struktur zu machen. Diese sind mit einem Migrations-Tool (eine Aufgabe für Rake) laufen, die auch auf eine DB-Tabelle schreibt, damit sie weiß, ob eine bestimmte Migration ausgeführt wurde oder nicht.

Sie können eine Struktur wie diese für Ihre Entwickler-Plattform (.NET?), Aber ich denke, dass diese Frage in anderen Antworten Menschen für den Umgang mit Datenbank-Versionierung in Ihrer Entwicklungsplattform verfügbare Tools vorschlagen werden, oder vielleicht für Ihre spezifische DB .

Ich weiß nicht, jeder von ihnen, aber diese Liste überprüfen. Ich sehe eine Menge von Pay Dinge gibt, aber es muss etwas frei sein. Auch check this out .

ich migrieren Änderungen über Änderungsskripts von Entwicklern geschrieben, wenn sie getestet haben / überprüft ihre Änderungen. (Die Ausnahme große Daten sein zu bewegen.) Alle Skripte werden in einem Versionsverwaltungssystem gespeichert. und kann durch DBAs überprüft werden.

Es ist manuell, manchmal zeitaufwendig, aber effektiv, sicher und kontrollierte Prozess.

Datenbanken sind zu lebenswichtig von dev zu kopieren.

Es gibt Werkzeuge, um diese Skripte zu erstellen / zu überprüfen. Siehe http://www.red-gate.com/ Ich habe ihre Werkzeuge verwendet zwei Datenbanken zu vergleichen Skripte zu erstellen. Brian

Wenn die Änderungen klein sind, ich sie manchmal von Hand machen. Für größere Änderungen, verwende ich Red Gate 's SQL vergleichen zu erzeugen Änderungsskripts. Diese werden von Hand überprüft und läuft in der QA-Umgebung zuerst sicherstellen, dass sie nicht alles brechen. Für große Veränderungen, führen wir eine spezielle Sicherung vor der Änderung sowohl in QA und in der Produktion.

Wir haben den Ansatz von Ron zu nutzen. Es macht Sinn, für ein großes Projekt mit engagiertem Team von DBAs. Aber wenn Sie nicht über einen dedizierten Entwickler haben, den Code schreibt, nur für die DB dieses Ansatz ist zeit- und ressourcen teuer .

Der Ansatz zu verwenden RedGate DB vergleichen ist auch nicht gut. Sie haben noch viel Handarbeit tun Sie einige Schritt versehentlich überspringen .

Es braucht etwas besser. Dies war der Grund, warum wir die "Agile DB Freizeit / Import / Rückwärts / Export-Tool" Das Tool ist kostenlos.

Vorteile: Ihre Entwickler verwenden, um alle bevorzugten Tools DEV DB zu entwickeln. Dann laufen sie DB RIRE und es macht reverseengeniring DB (Tabellen, Views, stor proc, usw.) und Export von Daten in XML-Dateien. XML-Dateien, die Sie in dem jedem möglichen Code-Repository-System zu halten.

Und der zweite Schritt ist DB RIRE ein weiteres Mal erzeugen Unterschied Skripte zwischen Struktur und den Daten in XML-Dateien und in der Produktion DB.

läuft

Natürlich kann man so viele Wiederholungen machen, wie Sie benötigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top