如何将本地 postgresql 数据库迁移到 azk?
How do I migrate my local postgresql database to azk?
这里有将现有 MySQL 数据库迁移到 azk 映像的说明:http://images.azk.io/#/mysql?_k=yvigvq
我如何为 postgresql 做同样的事情?
谢谢!
我只是做了一个 PR,在图像存储库中添加了说明:
基本上有三种方法可以将转储文件恢复到 azk
内的数据库 运行ning(它们也可以与其他数据库一起使用,例如 MySQL 和 MariaDB):
1- 使用本地客户端(图形工具或命令行工具):
连接数据库之前,需要先找到数据库运行ning端口:
$ 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:
运行同样的步骤找出数据库运行ning端口,可以运行以下命令:
$ 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"),
}
}
});
使用命令 azk start postgres
启动 postgres
系统,转储文件将自动 运行。
Obs:如您在 Postgres' script and in the Mysql's 中所见,转储文件可以是纯文本 (.sql
)、压缩 (.sql.gz
) 甚至 shell 脚本(.sh
).
这里有将现有 MySQL 数据库迁移到 azk 映像的说明:http://images.azk.io/#/mysql?_k=yvigvq
我如何为 postgresql 做同样的事情?
谢谢!
我只是做了一个 PR,在图像存储库中添加了说明:
基本上有三种方法可以将转储文件恢复到 azk
内的数据库 运行ning(它们也可以与其他数据库一起使用,例如 MySQL 和 MariaDB):
1- 使用本地客户端(图形工具或命令行工具):
连接数据库之前,需要先找到数据库运行ning端口:
$ 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:
运行同样的步骤找出数据库运行ning端口,可以运行以下命令:
$ 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"),
}
}
});
使用命令 azk start postgres
启动 postgres
系统,转储文件将自动 运行。
Obs:如您在 Postgres' script and in the Mysql's 中所见,转储文件可以是纯文本 (.sql
)、压缩 (.sql.gz
) 甚至 shell 脚本(.sh
).