postgresql docker-entrypoint-initdb.d 创建多个数据库,并初始化对应表结构
时间: 2024-01-11 07:03:28 浏览: 340
好的,让我来回答您的问题。要使用 PostgreSQL 创建多个数据库并初始化对应表结构,您可以使用 Docker Compose 或 Dockerfile 来构建一个 PostgreSQL 容器,并在 docker-entrypoint-initdb.d 目录下放置一些 SQL 脚本来初始化数据库和表结构。在这些 SQL 脚本中,您可以使用 PostgreSQL 命令来创建和初始化多个数据库。例如,要创建名为 "db1" 和 "db2" 的两个数据库,并在每个数据库中初始化一个 "users" 表,您可以创建两个 SQL 文件,例如 "db1.sql" 和 "db2.sql",并在每个文件中编写以下内容:
db1.sql:
```
CREATE DATABASE db1;
\c db1
CREATE TABLE users (id serial primary key, name varchar(50), age int);
```
db2.sql:
```
CREATE DATABASE db2;
\c db2
CREATE TABLE users (id serial primary key, name varchar(50), email varchar(50));
```
然后,将这两个文件放置在 Dockerfile 中的 docker-entrypoint-initdb.d 目录中,并在 Dockerfile 中指定初始化数据库文件的目录:
```
FROM postgres
COPY ./docker-entrypoint-initdb.d /docker-entrypoint-initdb.d/
```
运行此 Dockerfile 将自动构建一个 PostgreSQL 容器,并初始化两个数据库 "db1" 和 "db2",并在每个数据库中创建 "users" 表。
阅读全文