繁体   English   中英

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

[英]How to specify the current working database for the initialization script of a postgres docker container?

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

让我们考虑使用一个非常简单的 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
);

这详细解释了数据库的初始化。 如何在 Docker Postgres 的脚本中创建用户\/数据库<\/a>。

简而言之,初始化期间创建的数据库的名称以及默认创建表的位置由环境变量POSTGRES_DB<\/code>给出。 如果未设置变量,则使用默认值postgres<\/code>代替。

docker-entrypoint-initdb.d<\/code>文件夹中的脚本使用以下命令一一执行:

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

您可以使用“低 ASCII 字母顺序”文件名创建一个 shell 脚本,例如01-init.sh<\/code> :

#!/bin/bash
export POSTGRES_DB=<the database you want to set>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM