Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Schemawerkzeuge: Dump, Insert und Diff

Die drei Kommandozeilen-Schemawerkzeuge von Exponential - ezsqldumpschema.php, um Schema und Daten als .dba oder SQL zu dumpen, ezsqlinsertschema.php, um sie in jede SQL-Engine zu laden, und ezsqldiff.php, um zwei…

Download as PDF

Address: https://doc.exponential.earth/learninminutes/exphelp/viewer/help/database-administrators/schema-tools-dump-insert-diff.md

On this page

This page is a translation. Read the English original

Schemawerkzeuge: Dump, Insert und Diff

Diese Seite richtet sich an Datenbankadministratoren, die Exponential-Schemas dumpen, laden oder vergleichen. Drei Skripte in bin/php/ erledigen das, jedes auch über die Konsole verfügbar (exp:ezsqldumpschema, exp:ezsqlinsertschema, exp:ezsqldiff). Die Optionen unten sind aus ihrer Ausgabe von --help in 6.0.15 übernommen; führen Sie --help auf Ihrem Release aus, bevor Sie sich auf eine verlassen.

Inhalt

  1. Bevor Sie beginnen
  2. ezsqldumpschema.php
  3. ezsqlinsertschema.php
  4. ezsqldiff.php
  5. Beispiele
  6. Checkliste

Bevor Sie beginnen

  • Die Option --password= setzt das Passwort auf die Kommandozeile, sichtbar in der Prozessliste. Führen Sie die Werkzeuge auf einer Maschine aus, die Sie kontrollieren, oder mit einem vorübergehenden Passwort.
  • --type nimmt einen Typ von Schema-Handler aus settings/dbschema.ini; für SQLite ist das Datenbankargument der Dateiname, wie in Database. Die eigene Hilfe der Skripte listet nur einige Typen; sqlite3 und, mit ezoracle, oracle funktionieren ebenfalls (9.9).
  • Fügen Sie --allow-root-user hinzu, wenn Sie sie als root ausführen.

ezsqldumpschema.php

ezsqldumpschema.php [OPTION]... [DATABASE] [FILENAME] dumpt das Schema, die Daten oder beides in eine Datei oder auf die Standardausgabe.

OptionBedeutung
--type, --host, --port, --socket, --user, --passworddie Quelldatenbank (--socket nur MySQL)
--output-arrayeine Datei mit Array-Strukturen (für Menschen lesbar): das Format .dba
--output-serializedserialisierte Daten (spart Platz)
--output-sqlSQL für die Quell-Engine
--format=generic oder localgeneric passt zu allen Datenbanken (Standard); local nur zu der, aus der gedumpt wurde
--output-types=schema, data, allwas gedumpt wird (Standard: nur Schema)
--diff-friendlySQL-Ausgabe, die diff besser verträgt
--meta-datazusätzliche engine-spezifische Informationen
--table-type, --table-charsetfür SQL-Ausgabe (MySQL-Tabellentypen: bdb, innodb, myisam)
--compatible-sql, --no-sort, --allow-multi-insertDetails der Ausgabe
--schema-filenur beim Dumpen aus Dateien

ezsqlinsertschema.php

ezsqlinsertschema.php [OPTION]... [FILENAME] [DATABASE] lädt ein .dba-Schema und Daten in eine Datenbank.

OptionBedeutung
--type, --host, --port, --socket, --user, --passworddie Zieldatenbank
--insert-types=schema, data, all, nonewas geladen wird (Standard: nur Schema); none mit --clean-existing räumt nur auf
--schema-filedie Schemadatei, erforderlich beim Import eines Schemas
--table-type, --table-charsetTabellenoptionen für das Ziel
--allow-multi-insertmehrzeilige Inserts, wo die Engine sie unterstützt
--clean-existingentfernt alle Datenbankobjekte vor dem Laden

--clean-existing leert die Zieldatenbank. Prüfen Sie das Argument DATABASE zweimal und richten Sie es nie versehentlich auf eine Produktionsdatenbank. Auf PostgreSQL korrigiert der Installer nach dem Laden von Daten die Sequenzen.

ezsqldiff.php

ezsqldiff.php [OPTION]... [SOURCE] [MATCH] zeigt die Unterschiede zwischen zwei Schemas und setzt den Exit-Code: 0, wenn sie übereinstimmen, 1, wenn sie sich unterscheiden.

OptionBedeutung
--type, --host, --user, --password, --socketeine Verbindung für beide Seiten
--source-*, --match-*getrennte Verbindungen je Seite
--check-onlykein SQL, nur der Exit-Code
--reversedie Unterschiede umkehren
--lint-checkdas Quellschema gegen die Namensregeln prüfen, statt zu vergleichen (Das .dba-Schemaformat)

Typen: mysql und postgresql. Eine Seite kann eine .dba-Datei sein. Um Ihre Datenbank mit dem Release zu vergleichen, geben Sie das Referenzschema zuerst an; die Ausgabe ist das SQL, das Ihre Datenbank in die Referenz verwandeln würde. Lesen Sie es, führen Sie es nicht aus: Eine Zeile DROP TABLE nennt oft eine Tabelle Ihrer eigenen Erweiterung (11.7).

Beispiele

Schema und Daten einer MySQL-Website in eine portable Datei dumpen:

php bin/php/ezsqldumpschema.php --type=mysql --host=localhost --user=exponential --password='<password>' \
    --format=generic --output-array --output-types=all exponential var/backup/site.dba --allow-root-user

In PostgreSQL laden:

php bin/php/ezsqlinsertschema.php --type=postgresql --host=localhost --user=exponential --password='<password>' \
    --insert-types=all --schema-file=var/backup/site.dba var/backup/site.dba exponential --allow-root-user

Eine MySQL-Datenbank mit dem Schema des Releases vergleichen:

php bin/php/ezsqldiff.php --type=mysql --user=exponential --password='<password>' share/db_schema.dba exponential --allow-root-user
echo $?        # 0: the same, 1: differences

Halten Sie Dumps aus dem Web-Root heraus: var/backup/ liegt unter var/, das die mitgelieferten Rewrite-Regeln nicht ausliefern, aber prüfen Sie Ihren Server wie bei der SQLite-Datei (Die Datenbank absichern).

Checkliste

  • To do: --help auf Ihrem Release gelesen.
  • To do: Passwörter auf der Kommandozeile nur auf einer Maschine, die Sie kontrollieren.
  • To do: --clean-existing nur gegen ein Ziel verwendet, das Sie leeren wollten.
  • To do: Ausgabe des Diffs gelesen und geprüft, nie direkt in die Datenbank geleitet.

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x