![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Erfahrener Benutzer
Registriert seit: 30.10.2005
Beiträge: 274
|
Nabend miteinander,
Ich habe hier eine kleine Anwendung mit ca. 10 Tables mit insgesamt 2000 Zeilen. Da mein Script ein bisschen kritisch ist und ich es demnächst updaten muss werde ich für die alte Version einen XML Backup machen wo ich nach aufspielen der neuesten Script Version, den XML Backup der Vorgängerversion importieren kann. Das geht schneller als die alten Tabellenstrukturen mit Inhalt an die neue Script Version anzupassen. Nun hatte ich mir gedacht ich gehe hin und mache aus den Tabellendaten jeder einzelnen Tabelle eine XML Datei. Nachdem alle Dateien erstellt worden sind packe ich die in ein ZIP Archiv und erzwinge den Download. In der neuen Scriptversion lade ich dann das ZIP Archiv hoch, das wird entpackt, jede XML wird sicherheitshalber nochmal gegen ein DTD Schema geprüft und falls alles passt wir per Transaktion die jeweiligen Tabellen befüllt. Was haltet ihr davon? Jetzt mal vom Aufwand abgesehen. Umsetzen würde ich das mit ein paar PEAR. Oder sollte ich (wenn überhaupt) die Normalisierung der Tabellen komplett über den Haufen werfen, alles in eine riesige XML Datei packen (statt 2-6 XML Dateien je Tabelle) und beim import wieder alles auseinander frimeln? |
|
|
|
|
|
Nach oben #2 |
|
Entwickler
Registriert seit: 05.02.2007
Ort: München
Beiträge: 115
|
Ich frage mich, warum du überhaupt XML verwenden möchtest, ein einfacher MySQL-Dump hat um einiges weniger Meta-Zeichen und du musst bei der Speicherung nicht auf Escape-Sequenzen Acht geben. Sollte sich während des Updates etwas an den Tabellen ändern, kann man ganz einfach auf Basis der SQL_Statements ein Mapping generieren. Der Import geht per
Code:
mysql --user="123" --password="456" dbname < /path/to/dump/file.sql
__________________
Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Have a look at http://www.adventure-php-framework.org! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
|
|
Nach oben #3 |
|
Erfahrener Benutzer
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 662
|
Nunja, bei 2000 Zeilen wird es wohl nicht gleich zu einem Speicherüberlauf kommen.
Dennoch bin ich persönlich der Meinung, dass man sich überlegen sollte, ob ein Import-Script überhaupt notwendig ist, da man in der Regel nur ein Mal von einem alten Script auf ein neues umzieht (außer, es wird für verschiedene Projekte genutzt). Denn egal, ob du XML oder SQL verwendest: Du musst entweder beim Export (SQL) oder beim Import (XML) die Daten umbauen, damit sie in die neuen Tabellen passen. Ich persönlich mache es dann eigentlich so, dass ich die SQL-Commands in PMA baue, um die Daten von der einen Tabelle in die andere zu bekommen und sobald die genau so funktioniert, wie ich das haben will, speichere ich sie in einer Text-Datei ab. Dann kommt die nächste Tabelle dran. Solange, bis ich alle Tabellen importiert habe (übrigens mit "INSERT INTO ... SELECT ..."). Danach speichere ich die Text-Datei als eine .sql-Datei und nutze diese dann beim Umzug für den Import der Daten. Vorteil: Ich ziehe direkt die Daten aus der Datenbank und muss nicht ggf. 20 MB an Daten per Upload auf den Server schieben und ich kann die Datei für jedes Projekt nutzen, welches die selben Scripte verwendet. Ich finde das persönlich etwas praktischer und einfacher, als nachher manuell aus den XML-Daten die SQL-Commands zusammen bauen zu müssen, denn wenn in der neuen Tabellenstruktur auf ein Mal in einer Tabelle Daten aus mehr als einer alten Tabelle zusammengeführt werden, muss man die Funktionalität von JOINs im SQL-Command (bzgl. "INSERT INTO ... SELECT ...") für das XML selber realisieren. Ein wenig aufwendig für ein Script, das in der Regel sehr selten genutzt wird.
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
|
|
|
|
|
Nach oben #4 |
|
Erfahrener Benutzer
Registriert seit: 30.10.2005
Beiträge: 274
|
Das mit SQL Befehlen in einer Textdatei speichern ist auch eine gute Idee, also für eine einmalige Aktion. Bisher hatte ich das immer so gemacht, wenn die neue Tabellenstruktur steht und das neue Script ist online, dann nehme ich die alte Tabellenstruktur und bastele diese um, damit sie genauso ist wie die neue Tabellenstruktur ist, allerdings ist das nicht so das Wahre da in der Zeit mit dem Script nicht gearbeitet werden kann und ich beim umbauen vielleicht einen Fehler mache. Das wollte ich halt mit einem XML Import/Export vermeiden.
Aufwändig ist die Sache schon. |
|
|
|
|
|
Nach oben #5 |
|
Erfahrener Benutzer
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 662
|
Nunja, das ist immer das Problem bei einer Datenübernahme.
Wenn du im Vorfeld, also bevor auf das neue Script umgestellt wird, die SQL-Commands fertig hast, dann legst du vor dem Umzug eine neue DB an, lädst das neue Script hoch, richtest es für die neue DB ein, sperrst das alte Script, übernimmst die Daten, testest die neue Version und schaltest die dann frei. Wie genau du das dann machen musst ist natürlich auch abhängig davon, wie du auf deinen Webspace zugreifen kannst, denn am Einfachsten ist es, die neue Version erstmal in einen anderen Ordner zu schieben und dann per SSH einfach die Dateien nach der Übernahme und dem Test zu verschieben, das dauert dann nur wenige Sekunden.
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Bug im PEAR XML Parser? | ex³ | PEAR, PECL und Frameworks | 11 | 15.02.2007 14:51 |
| xml parsing | nove | HTML, XML und CSS | 10 | 16.07.2005 07:43 |
| File(s)/Package(s) zu Archiv HINZUFÜGEN bzw. Aktualisieren | obiwankenobi | Tools, Server, Betriebssysteme | 0 | 26.10.2004 14:32 |
| XML Schema GUI Engine (JAXFront) | spor | Nachrichten | 2 | 05.08.2004 17:27 |