2016-03-25 60 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:

运行上述找出运行端口数据库相同的步骤,你可以运行下面的命令:

$ 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,转储文件将被自动运行。

观测数据:正如你可以在Postgres' script,并在Mysql's看到,转储文件可以是纯文本(.sql),压缩(.sql.gz)甚至shell脚本(.sh)。

相关问题