Есть инструкции по переносу существующей базы данных MySQL на изображение azk здесь: http://images.azk.io/#/mysql?_k=yvigvqКак перенести мою локальную базу данных postgresql в azk?
Как я могу сделать то же самое для postgresql?
Спасибо!
Есть инструкции по переносу существующей базы данных MySQL на изображение azk здесь: http://images.azk.io/#/mysql?_k=yvigvqКак перенести мою локальную базу данных postgresql в azk?
Как я могу сделать то же самое для postgresql?
Спасибо!
Я просто сделать PR добавления инструкции в хранилище изображения:
https://github.com/azukiapp/docker-postgres/pull/3
см раздел: Migrating an existing PostgreSQL Server
Есть три основных способа восстановления файла дампа обкатки базы данных внутри azk
(они также работают с другими БД, такими как MySQL и MariaDB):
1- Использование локального клиента (графический инструмент или инструмент командной строки):
Перед подключением к базе данных, вам необходимо выяснить, базы данных работает порт:
$ 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 │ - │
└───┴──────────┴───────────┴──────────────┴─────────────────┴─────────────┘
Теперь мы можем подключиться к базе данных с помощью хоста dev.azk.io
и полученный порт из предыдущей команды (32381
) , Имя пользователя, пароль и имя базы данных определены в Azkfile
.
2- Использование azk shell
и базы данных CLI:
Running те же шаги, описанные выше, чтобы узнать базу данных под управлением порта, вы можете выполнить следующую команду:
$ azk shell postgres
$ psql --host dev.azk.io --port 32831 --username ${POSTGRES_USER} \
--password=${POSTGRES_PASS} --dbname=${POSTGRES_DB} < dbexport.sql
3 - Использование сценария автозагрузки из базы данных:
Большинство официальных изображений Docker для базы данных имеют сценарий entrypoint
, который ищет файлы в папке /docker-entrypoint-initdb.d/
и запускает их при инициализации базы данных. Учитывая, что вы можете просто установить файлы дампа (.sql
) в этом месте, как описано в следующем Azkfile
:
systems({
postgres: {
image: { docker: "azukiapp/postgres" },
mounts: {
"/docker-entrypoint-initdb.d": sync("./dumps"),
}
}
});
Запуск системы postgres
с командой azk start postgres
, файлы дампа будет запускаться автоматически.
Obs: Как вы можете видеть в Postgres' script и в Mysql's, файлы дампа может быть простой текст (.sql
), прессованные (.sql.gz
) или даже сценарии оболочки (.sh
).