Es gibt Anweisungen zum Migrieren einer vorhandenen MySQL-Datenbank zu einem Azk-Bild hier: http://images.azk.io/#/mysql?_k=yvigvqWie migriere ich meine lokale postgresql-Datenbank zu AZK?
Wie kann ich das gleiche für postgresql tun?
Danke!
Es gibt Anweisungen zum Migrieren einer vorhandenen MySQL-Datenbank zu einem Azk-Bild hier: http://images.azk.io/#/mysql?_k=yvigvqWie migriere ich meine lokale postgresql-Datenbank zu AZK?
Wie kann ich das gleiche für postgresql tun?
Danke!
ich die Anweisungen im Repository des Bildes nur ein PR machen Zugabe:
https://github.com/azukiapp/docker-postgres/pull/3
siehe Abschnitt: Migrating an existing PostgreSQL Server
Es gibt grundsätzlich drei Möglichkeiten, um eine Abbilddatei in einer Datenbank läuft wiederherstellen innerhalb azk
(sie funktionieren auch mit anderen DBs wie MySQL und MariaDB):
1- Verwenden eines lokalen Clients (Grafik-Tool oder Befehlszeilenprogramm):
Vor der Verbindung zur Datenbank, müssen Sie die Datenbank läuft Port, um herauszufinden:
$ azk start postgres # Ensures the database is running
$ azk status postgres
┌───┬──────────┬───────────┬──────────────┬─────────────────┬─────────────┐
│ │ System │ Instances │ Hostname/url │ Instances-Ports │ Provisioned │
├───┼──────────┼───────────┼──────────────┼─────────────────┼─────────────┤
│ ↑ │ postgres │ 1 │ dev.azk.io │ 1-data:32831 │ - │
└───┴──────────┴───────────┴──────────────┴─────────────────┴─────────────┘
Jetzt können wir auf die Datenbank mit dem Host dev.azk.io
und den resultierend Port aus dem vorherigen Befehl (32381
) verbinden . Der Benutzername, das Passwort und der Datenbankname sind in der Azkfile
definiert.
2- Mit azk shell
und die Datenbank CLI:
die gleichen oben beschriebenen Schritte Ausführen der Datenbank ausgeführt Port zu finden, können Sie den folgenden Befehl ausführen:
$ azk shell postgres
$ psql --host dev.azk.io --port 32831 --username ${POSTGRES_USER} \
--password=${POSTGRES_PASS} --dbname=${POSTGRES_DB} < dbexport.sql
3 - Verwenden von Autoload-Skript aus der Datenbank Bild:
Die meisten der offiziellen Docker Images für Datenbanken hat ein entrypoint
Skript, das nach Dateien im Ordner sucht und sie ausführen, wenn die Datenbank initialisiert wird. Da Sie einfach Ihre Dump-Dateien bereitstellen können (.sql
) an dieser Stelle, wie in der folgenden Azkfile
beschrieben:
systems({
postgres: {
image: { docker: "azukiapp/postgres" },
mounts: {
"/docker-entrypoint-initdb.d": sync("./dumps"),
}
}
});
Starten des postgres
System mit dem Befehl azk start postgres
werden die Dump-Dateien automatisch ausgeführt werden.
Obs: Wie Sie im Postgres' script und in den Mysql's, die Dump-Dateien können Klartext (.sql
), komprimierten (.sql.gz
) oder auch Shell-Skripten (.sh
) sehen können.