2016-10-30 3 views
1

Ich baue eine Web-Anwendung mit ASP.NET MVC mit SQL Server und mein Entwicklungsprozess ist, wie wenn man seineWie aktualisiere ich eine Datenbank, die gerade verwendet wird?

  • Änderungen im SQL Server lokal
  • erstellen LINQ to SQL-Klassen wie nötig
  • Vor jeder Änderung Satz zu begehen, die eine Datenbank, Skript aus der Datenbank hat, so dass ich es regenerieren kann, wenn ich jemals zu

brauche Was ich bin verwirrt darüber ist, wie ich werde die Produktion aktualisieren Datenbank mit Live-Daten im Set.

Zum Beispiel sagen wir, ich habe eine Tabelle wie

   People 
======================================== 
Id | FirstName | LastName | FatherId 
---------------------------------------- 
1 | 'Anakin' | 'Skywalker' | NULL 
2 | 'Luke' | 'Skywalker' | 1 
3 | 'Leah' | 'Skywalker' | 1 

in der Produktion und vor Ort und lassen Sie uns sagen, dass ich hinzufügen, eine zusätzliche Spalte lokal

ALTER TABLE People ADD COLUMN LightsaberColor VARCHAR(16) 

und aktualisieren meine LINQ to SQL, Skript es aus, testen Sie es mit Beispieldaten und entscheiden Sie, dass ich diese Spalte zur Produktion hinzufügen möchte.

Im Rahmen eines Bereitstellungsprozesses, wie würde ich das tun? Existiert ein Tool, das meine Datenbank Generation Datei lesen konnte (nennen wir es GenerateDb.sql) und herausfinden, dass es braucht die Produktion People Tabelle zu aktualisieren Standardwerte in der neuen Spalte zu setzen, wie

     People 
========================================================== 
Id | FirstName | LastName | FatherId | LightsaberColor 
---------------------------------------------------------- 
    1 | 'Anakin' | 'Skywalker' | NULL  | NULL 
    2 | 'Luke' | 'Skywalker' | 1  | NULL 
    3 | 'Leah' | 'Skywalker' | 1  | NULL 

?? ?

Antwort

1

Sie sollten über einen Staging-DB verfügen, der mit der Produktionsdatenbank identisch ist. Wenn Sie Änderungen an der Datenbank hinzufügen, sollten Sie diese Änderungen zuerst an die Staging-DB vornehmen. Sie können natürlich die Dev- und Staging-DB vergleichen, um ein Skript mit dem Unterschied zu erstellen.

Visual Studio verfügt über ein Schema Vergleichen, die ein Skript mit den Unterschieden zwischen zwei Datenbanken generieren. Es gibt einige andere Werkzeuge, die das gleiche tun.

So können Sie das Skript generieren, es auf die Inszenierung Db und wenn alles gut geht, können Sie das Skript auf der Produktion anwenden DB

0

Eigentlich das ist richtig müssen Sie einen Staging-Prozess haben, wenn wir verpflichten Features verwenden wir TFS von der Entwicklung zur Produktion, die als Staging bezeichnet wird, können Sie die Geschichte des TFS nachschlagen, ob die Datenbank oder die Lösung. und wenn Sie TFS nicht in Visual Studio und MSSQL Server verwenden.

Ich vermute, dass Sie youre Funktionen direkt auf Ihren Server committieren, das ist Ihr Produktionstest. oder Sie können das zuerst in Ihrem Testserver testen, um die Änderungen zu sehen.

Eine andere Sache ist, dass ich denke, wenn Sie gespeicherte Prozeduren verwenden, können Sie temporäre Tabellen verwenden, wenn Sie nach dem Skript fragen.

Ich schätze, dass es das erste Mal ist, in einem Live-Server zu committen.

Verwandte Themen