2016-03-25 3 views

ответ

3

Есть три основных способа восстановления файла дампа обкатки базы данных внутри 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.

Connecting to the DB

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).