2009-08-12 10 views
0

Ich bin ein MSSQL-Entwickler und ich bin vor kurzem beauftragt worden, ein Access-basiertes System zu beheben. Diese Änderung beinhaltet Datenbankänderungen. Ich möchte nicht auf der "Live" -Datenbank entwickeln, ich würde lieber eine Kopie erstellen und dann am Ende, wenn alle Tests abgeschlossen sind, die Live-Version mit dem Entwickler in Bezug auf die Struktur synchronisieren.Access-Entwicklung - Live-Datenbank synchron mit Dev-Datenbank

Wie mache ich das mit Zugriff? Kann ich Upgrade-Skripte von der Dev-Datenbank erstellen und sie in der "Live" -Zugriffsdatenbank ausführen?

Danke!

Antwort

1

Sie können Skripts erstellen, die Felder (Spalten) hinzufügen und ändern. Es empfiehlt sich jedoch, eine leere Kopie der Entwicklerdatenbank zu erstellen und sie mithilfe von Abfragen und VBA aus der Live-Datenbank anzufügen.

0

Natürlich können Sie, aber manchmal ist es schwieriger als manuell die Änderungen zu übernehmen. Wenn Sie die Änderungen nur an einer Instanz der Datenbank vornehmen müssen, könnte es besser sein, sie für die Entwicklung zu kopieren, Ihre Änderungen zu entwickeln und die Änderungsspezifikation so vorzubereiten, dass sie manuell/halb manuell angewendet wird (einige Skripte sind leicht zu handhaben) Entwickeln - es wird die Zeit der Änderungsbereitstellung verkürzen.

Zum Beispiel ist es schwierig, das Attribut "Required" der Spalte von TRUE in FALSE zu ändern. (Sie müssen eine temporäre Kopie der Spalte erstellen, die ursprüngliche löschen, eine neue mit den richtigen Einstellungen erstellen, den Inhalt der temporären Spalte in die neue Spalte kopieren, einen temporären löschen - ziemlich einfach, oder?)

-1

Da Sie sich im Bereich SQL Server-Entwickler befinden, sollten Sie das Frontend und Backend in Access trennen. Dann könnten Sie das Backend zu SQL Server Express machen. Dann könnten Sie Änderungen an der Struktur für die Prod-Datenbank einfach so durchführen, wie Sie es jetzt in SQL Server tun. Es ist eine Weile her, dass ich in Access gearbeitet habe, aber ich denke, dass Sie dann die Tische in Ihrem Frontend neu verknüpfen müssen.

1

Sie könnten Ramous Idee folgen. Tatsächlich sind Access-Datenbanken oft vollständig in einer Datei enthalten. So können Sie die gesamte DB kopieren und die Kopie bearbeiten und testen, indem Sie die Kopie bereitstellen. Auf diese Weise können Sie den Code, die Struktur und die bisher entwickelten Objekte ohne andere Programme oder Skripts nutzen. Access-Entwicklung ist einfach und es gibt viele Online-Ressourcen.

+0

-1. Die Aufteilung der Datenbank ist für die beschriebene Aufgabe unerlässlich. – Smandoli

0

Compare'Em erstellt die Unterschiede zwischen zwei Datenbanken in VBA-Code, so dass es das Upgrade auf das Prod-Back-End wie erforderlich durchführen kann. Ich behalte eine Versionsnummer in einer Tabelle im Backend und führe die entsprechenden Subroutinen durch, um das Backend zu aktualisieren.

0

Zunächst sollte die Datenbank in Back-End (nur Tabellen) und Front-End (Formulare/Berichte/Abfragen/Module/etc) aufgeteilt werden. Jeder Benutzer verfügt über eine Kopie des Front-Ends auf seiner Workstation mit Links zu den Tabellen im Back-End, die auf einem Dateiserver gemeinsam genutzt werden.

Für die Entwicklung würden Sie an einer Kopie des Frontends arbeiten, Formulare/Berichte/Code ändern usw., und wenn sie bereit sind, zu implementieren, würden die Benutzer es einfach über ihre vorhandenen Frontends kopieren.

Wenn Sie Datenstrukturen ändern, könnten Sie es skripten, aber warum? Es dauert länger, das Scripting zu programmieren und zu testen, das erforderlich ist, um die Änderungen in Ihrem Testbed-Back-End vorzunehmen, und sie dann erneut zu erstellen, wenn Ihr neues Front-End in den produktiven Einsatz kommt. Ich würde nur so etwas skripten, wenn ich mehrere Kopien desselben Backends upgraden müsste.

0

Der erste Schlüssel ist das Aufteilen der Datenbank, wie bereits in vielen Antworten gefunden. Eine schnelle und einfache Methode zum Bereitstellen der Client-Datenbank finden Sie unter these instructions.

+0

Der Auto FE Updater macht viel mehr Dinge als das Skript, einschließlich das Erstellen/Aktualisieren von Verknüpfungen usw. http://www.granite.ab.ca/access/autofe.htm –

+0

Danke ... das könnte die beste Sache sein SO für mein bisheriges Leben. Ich werde es mir ansehen. – Smandoli

0

Dies ist ein Neuling Vorschlag, aber:

Wie Sie Änderungen an Ihrem dev Kopie der Datenbank zu machen, geben Sie in einen Text-Datei, die eine Reihe von SQL-Befehle, die diese Änderungen durchführen würde und immer noch die Daten intakt .

In regelmäßigen Abständen, nehmen Sie eine neue Kopie der Live-Datenbank und führen Sie Ihre Skripts dagegen, um zu testen, dass diese Skripte A) ordnungsgemäß funktionieren, B) bewahren Sie alle Daten korrekt.

Wenn die Zeit für die Veröffentlichung Ihrer Arbeit gekommen ist, führen Sie einen letzten Test durch und führen Sie Ihre SQL-Befehle mit einer Kopie der Live-Datenbank aus. (Nimm die Live-Datenbank offline, damit keine neuen Daten eingehen.)

Sobald du sicher bist, dass es funktioniert, tausche einfach die Live-Datenbank gegen die neueste Dev-Datenbank und du bist fertig.

Und Sie haben alle DB-Änderungen in Ihrer Textdatei geschrieben, so dass Sie später zurückgehen und sie später anschauen können, wenn es sein muss.