Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi [IBExpert] Datenbank kopieren, ohne Daten, mit neuen DB-Name (https://www.delphipraxis.net/127752-%5Bibexpert%5D-datenbank-kopieren-ohne-daten-mit-neuen-db-name.html)

Chemiker 18. Jan 2009 13:32

Datenbank: FB • Version: 2.0 • Zugriff über: ÎBExpert

[IBExpert] Datenbank kopieren, ohne Daten, mit neuen DB-Name
 
Hallo,

ich würde gerne 2 Datenbanken anlegen.
1 Test-Datenbank: Für Test durchzuführen, darin befinden sich Testdaten usw.

2. Echt-Datenbank: Darin soll die Struktur der Testdatenbank nach erfolgtem Test, abgespeichert werden.

Ist das möglich und wenn ja, auch in die andere Richtung, so das man in der Test-Datenbank wieder die aktuelle Datenbank-Struktur zurückspielen kann?

Bis bald Chemiker

mkinzler 18. Jan 2009 13:46

Re: [IBExpert] Datenbank kopieren, ohne Daten, mit neuen DB-
 
Eine neue Struktur auf vorhandene Daten anzuwenden könnte zu Problemen führen.
Meinst du die Frage so?

TBx 18. Jan 2009 14:01

Re: [IBExpert] Datenbank kopieren, ohne Daten, mit neuen DB-
 
Du hast im IBExpert die Möglichkeit, Datenbanken zu vergleichen und Dir Update-Skripte zu erstellen.
Dies ist in beide Richtungen möglich. Auch kannst Du angeben, in welcher Richtung Du die Änderungen übernehmen willst, kommt einfach nur darauf an, was Du als Quelle und was als Ziel angibst.

Bedenke hierbei, dass Strukturänderungen auch immer mit Datenänderungen einher gehen. Ggf. sind die Änderungsskripte also hinsichtliuch der Daten aufzubereiten.

Vollautomatisch geht sowas nicht.

Gruß

Thomas

[Edit]
PS: für solche Entwicklungsarbeiten kann man extra in der Datenbankregistrierung Comparative DB eintragen. Es besteht dann im IBExpert die Möglichkeit, in den Ansichten von Tabellen, SPs etc auf den Reiter Vergleich zu gehen und sich die Unterschiede anzeigen zu lassen.
Auch den Historie-Reiter den es im SP-Editor und Trigger-Editor gibt, kann ich Dir hier nur ans Herz legen.
[/Edit]

haentschman 18. Jan 2009 14:02

Re: [IBExpert] Datenbank kopieren, ohne Daten, mit neuen DB-
 
Hallo Chemiker...

Backup und Restore sind deine Freunde... :wink:

- Beim Backup nur die Metadaten sichern
- Restore des Backup in eine neue Datenbank

:hi:

[edit] :oops: ich glaube, daß ich dich mißverstanden habe
Zitat:

Echt-Datenbank: Darin soll die Struktur der Testdatenbank nach erfolgtem Test, abgespeichert werden.
wie meinst du das genau :gruebel:
[/edit]

Chemiker 18. Jan 2009 14:35

Re: [IBExpert] Datenbank kopieren, ohne Daten, mit neuen DB-
 
Hallo,

habe mich etwas umständlich ausgedrückt.

Ich versuche mal zu beschreiben was ich vorhabe.

Mir geht eigentlich um die Datenbankstruktur, ich habe eine Datenbankstruktur angelegt und mache einige Test um die die Zusammenarbeit zwischen Datenbank und Programm zu testen. Dafür werden z.B. neue Datensätze usw. angelegt.

Wenn die Tests positiv verlaufen sind, möchte ich die Datenbank-Struktur kopieren, in die Echt-Datenbank die später im Echtbetrieb verwendet wird. Darin soll nur die Struktur enthalten sein, also ohne Testdaten und die Generatoren sollen wieder auf 0 stehen.

Wenn ich die Test-Datenbank nun um z.B. SP erweitern möchte, aber in der Testphase feststelle, dass ich Blödsinn gemacht habe, möchte ich die Datenbankstruktur von der Echtdatenbank nehmen und kopieren und diese wieder als Testdatenbank verwenden.
Sozusagen ein Reset auf die letzt lauffähige Version.

Bis bald Chemiker

mkinzler 18. Jan 2009 14:37

Re: [IBExpert] Datenbank kopieren, ohne Daten, mit neuen DB-
 
Man kann in IBEXpert die Metdaten problemlos ohen die eigentlichen Daten in ein Skript überführen, welches man dann in einer anderen Datenbank ausführen kann

haentschman 18. Jan 2009 14:45

Re: [IBExpert] Datenbank kopieren, ohne Daten, mit neuen DB-
 
:gruebel: mmmhhh...

- mit IBExpert kriegst du das nicht hin :?

ich habe das bei mir folgendermaßen gelöst:

- ich habe eine FB Datenbank, in der die Tabellen,Felder, Feldgröße, Indexe etc. enthalten sind.
- diese exportiere ich als XML
- meine Programme erzeugen die Datenbank zur Laufzeit mit der XML als Grundlage
- Änderungen an der Struktur nehme ich in der Quelldatenbank der XML vor und erzeuge die XML neu
- dann einfach vorhandene Datenbank löschen und neu erzeugen lassen

... ist im vorher ein wenig Programmieraufwand aber im Nachhinein hat es sich für mich gelohnt, da ich auch beim Programmupdate die XML als Grundlage benutze und die vorhandene Datenbank entsprechend anpassen kann (Felder hinzu, Felder größer etc.)

:hi:

DeddyH 18. Jan 2009 14:54

Re: [IBExpert] Datenbank kopieren, ohne Daten, mit neuen DB-
 
Zitat:

Zitat von haentschman
- mit IBExpert kriegst du das nicht hin

Wieso nicht? Wie Markus bereits schrieb, kannst Du doch problemlos die Metadaten in ein Script extrahieren und daraus dann die DB neu aufbauen.

TBx 18. Jan 2009 15:00

Re: [IBExpert] Datenbank kopieren, ohne Daten, mit neuen DB-
 
Zitat:

Zitat von haentschman
mit IBExpert kriegst du das nicht hin

sehe ich komplett anders, Du hast weiter oben ja sogar selbst beschrieben, wie man die reine Struktur übernimmt.

Die von mir genannten Tools wie Vergleichen und Versionshistorie helfen einem hier auch weiter, da alte Revisionsstände von SPs und Triggern wiederhergestellt werden können.

Ich selbst nutze zur Übernahme von der Test-DB in die Echt-DB den Datenbankstrukturvergleich. Wenn ich nur eine SP oder einen Trigger übernehmen muss, schalte ich den Lazymode des Editors aus und wende Copy und Paste an.

Gruß

Thomas

Chemiker 18. Jan 2009 16:09

Re: [IBExpert] Datenbank kopieren, ohne Daten, mit neuen DB-
 
Hallo,

erst mal danke an alle für die Tipps.

Ich werde jetzt mal versuchen von der aktuellen Test-Datenbank eine Echt-Datenbank zu generieren.
Wenn ich noch konkrete Fragen dazu habe, werde ich mich wieder melden.

Bis bald Chemiker


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz