Postgresql 如何为postgres docker容器的初始化脚本指定当前工作数据库?

Postgresql 如何为postgres docker容器的初始化脚本指定当前工作数据库?,postgresql,docker,Postgresql,Docker,众所周知,可以使用与此类似的docker命令复制要在创建容器时执行的init.sql文件:copy init.sql/docker entrypoint initdb.d/ 让我们考虑使用一个非常简单的创建表PostgreSQL语句: CREATE TABLE films ( code char(5) CONSTRAINT firstkey PRIMARY KEY, title varchar(40) NOT NULL, did intege

众所周知,可以使用与此类似的docker命令复制要在创建容器时执行的init.sql文件:
copy init.sql/docker entrypoint initdb.d/

让我们考虑使用一个非常简单的创建表PostgreSQL语句:

CREATE TABLE films (
  code        char(5) CONSTRAINT firstkey PRIMARY KEY,
  title       varchar(40) NOT NULL,
  did         integer NOT NULL,
  date_prod   date,
  kind        varchar(10),
  len         interval hour to minute
);
问题是这个表是在哪里创建的

但更重要的是如何设置当前工作数据库以准确指定我们正在使用的数据库??

不仅是为了这句话,而且是为了所有后续的话,它们都是很多的

这详细解释了数据库的初始化

简而言之,初始化期间创建的数据库的名称以及默认情况下创建表的位置由环境变量
POSTGRES\u DB
给出。如果未设置变量,则使用默认值
postgres

使用以下命令逐个执行
docker entrypoint initdb.d
文件夹中的脚本:

psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" -f <your-file>
\connect DBNAME