none
Änderungen von meiner Testdatenbank in die Produktivdatenbank übernehmen RRS feed

  • Frage

  • Hallo,

    Ich entwickle im Moment ein Silverlight Programm mit Visual Studio 2010 auf meinem lokalen Rechner.

    Hier habe ich MS SQL Server 2008R2 Express installiert.

    Die Produktivdatenbank befindet sich auf einem MS-SQL Server 2008R2, auf einem Hosting Server im Internet.

    Bisher habe ich einfach die Felder die ich lokal verändert hatte auf dem Server im Internet ebfalls manuell nachgetragen und danach meine Silverlight Anwendung aktualisiert.

    Aktuell habe ich aber mehrere Tabellen hinzugefügt mit einigen Indexen, das wäre sehr aufwendig/fehleranfällig.

    Wie ist denn das beste/einfachste Vorgehen, um die Produktivdatenbank im Internet an meine Testdatenbank lokal anzugleichen?

    Hierbei sollten neue Tabellen, gelöschte Tabellen, geänderte Felder, gelöschte Felder, ... angeglichen werden.

    Ich kann mit dem SQL-Server Management Studio auf meinen lokalen SQL-Server als auch auf den SQL-Server im Internet zugreifen.

    Wobei ich auf dem Server im Internet nur Zugriff auf die jeweilige Datenbank habe, lokal auf alles.

    LG Volker

     


    Volker Busch
    Freitag, 23. Dezember 2011 16:16

Antworten

Alle Antworten

  • Hallo Volker,

    wenn Du immer alles über die SSMS GUI "zusammenklickst", statt mit T-SQL Skripten für Änderungen zu arbeiten, ist es im nachhinein schwierig und fehleranfällig alles auf einem anderem System nachzufahren.

    Es gibt (kommerzielle) Tools wie RedGate SQL Compare, mit denen man es automatisieren kann.

    In SSMS gibt es die Option bei jeder Änderung diese als T-SQL Script zu speichern, die man später wieder verwenden kann, siehe z.B. http://www.mssqltips.com/sqlservertip/1723/auto-generate-change-scripts-in-sql-server-management-studio-ssms-for-tables/
    Neuanlage und Löschung betrifft das aber nicht.

    Wie gesagt, am besten immer alles per Skript erledigen und nicht zusammenklicken.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Freitag, 23. Dezember 2011 16:40
  • Hallo Volker,

    eine möglichkeit wäre noch mit DDL Triggern alle Events aufzunehmen + einer VersionsID. Wenn der Deploy alle SQLCommandos auf dem gespielten Server absetzen.

    http://sqlandme.com/2011/07/15/sql-server-auditing-schema-changes-using-ddl-triggers/

    viel spaß :)

    Grüße



    Samstag, 24. Dezember 2011 11:45
  • Danke für die Antworten, dachte das geht einfacher.

    Ich glaub dann lösche ich immer die Datenbank und kopiere die aktuelle Testdatenbank ins Internet....

     

    LG Volker


    Volker Busch
    Dienstag, 27. Dezember 2011 12:51
  • Hallo Volker
     
    Dennoch solltest Du Dir beim nächsten Projekt angewöhnen, keine händischen Anpassungen an DB Strukturen zu machen, sondern diese immer in Scripts zu verpacken (zusammen mit der Migration der betroffenen Daten). Dann kannst Du später auf der Produktionsdatenbank (und anderen Testdatenbanken, falls Du mehrere Entwickler und Testzyklen hast), die Scripts laufen lassen. Ist eine kurze Umgewöhnungszeit, dannach wirst Du nicht mehr zusammen klicken wollen, weil Du dann immer auch genau weisst, wo was geändert und allenfalls im Anwendungs-Code ebenfalls angepasst werden muss.
     
    Gruss
    Henry

    Danke für die Antworten, dachte das geht einfacher.

    Ich glaub dann lösche ich immer die Datenbank und kopiere die aktuelle Testdatenbank ins Internet....

     

    LG Volker


    Volker Busch
    Mittwoch, 4. Januar 2012 04:31
  • Könnt Ihr mir Online Tutorials empfehlen, wo diese Technick vorgestellt wird, habe so was noch nie gemacht...


    Volker Busch
    Freitag, 6. Januar 2012 01:38
  • Hallo Volker,

    wie ich schon schrieb, kannst Du die Änderungsskripte von SSMS erstellen lassen.

    Du klickst Dir Deine Änderungen zusammen, aber statt dann auf "Speichern" zu klicken, nutzt Du den Button "Skript erstellen". Das lässt Du in ein neues Abfragefenster erstellen, kontrollierst es noch mal, führst es aus und speicherst es ab, um eine Änderungshistorie zu erhalten.

    In der nächsten SQL Server Version 2012 (RC0 ist aktuell verfügbar) gibt es die SSDT = SQL Server Data Tools, die Dich in dieser Hinsicht noch viel weiter unterstützen werden.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Freitag, 6. Januar 2012 04:43
  • Am 23.12.2011 17:16, schrieb Volker Busch:
    > Hallo,
    >
    > Ich entwickle im Moment ein Silverlight Programm mit Visual Studio 2010
    > auf meinem lokalen Rechner.
     
    Es gibt doch für das Studio eine DB-Erweiterung welche auch
    Schema-Compare und Data-Compare beherrscht ... Database Edititon oder so
    ähnlich.
     
    Ich kann dir aber nicht sagen wie welche VS-Version da vorausgesetzt
    wird bzw. wie die Lizensierung da ist.
     
     
    Montag, 9. Januar 2012 10:22
  • Falls es noch aktuell ist:

    In der Premium und der Ultimate Version von VS2010 gibt es den von Lutz erwähnten Datenvergleich, der auch Änderungsskripte generiert:

    [Gewusst wie: Vergleichen und Synchronisieren der Daten von zwei Datenbanken]
    http://msdn.microsoft.com/de-de/library/aa833428.aspx

    RedGate Compare gibt es übrigens auch als Trial-Version.

    Samstag, 21. Januar 2012 18:14
  • Das ist ja genau das Feasture, dass ich gesucht hatte, vielen Dank!
    Volker Busch
    Sonntag, 22. Januar 2012 08:12