众所周知,可以使用类似于以下命令的 docker 命令复制要在创建容器时执行的 init.sql 文件:COPY init.sql /docker-entrypoint-initdb.d/
让我们考虑使用一个非常简单的 create table 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
);
问题是where(在哪个数据库中)创建了该表?
但更重要的是如何设置当前工作数据库准确指定我们正在使用哪个数据库?
不仅是这句话,还有后来的所有言论,而且还很多!
这里详细解释了数据库的初始化。如何在 Docker Postgres 脚本中创建用户/数据库.
简而言之,初始化期间创建的数据库的名称以及默认创建表的位置由环境变量给出POSTGRES_DB
。如果变量没有设置默认值postgres
被用来代替。
中的脚本docker-entrypoint-initdb.d
文件夹一一执行,命令如下:
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" -f <your-file>
因此您已连接到POSTGRES_DB
数据库(看看docker-entrypoint.sh
脚本)。
在脚本文件中,您仍然可以使用元命令连接到不同的数据库
\connect DBNAME
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)