[英]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.