我正在尝试设置一个 PostgreSQL Docker 容器。我想在启动时创建一个模式并设置search_path
为该模式。
我创建了一个初始化 .sql 文件,并将其复制到容器启动时/docker-entrypoint-initdb.d/
由文件执行的文件夹中。docker-entrypoint.sh
入口点文件来自官方 docker library repo。
此 .sql 文件包含以下代码:
CREATE SCHEMA solwa_dev;
SET search_path TO solwa_dev;
-- table creations, sequences, other commands
一切正常执行,但初始化完成后search_path
没有相应地设置。如果我在终端中输入:
docker exec -it <docker_container> psql -U postgres -c "show search_path;"
它显示"$user", public"
。在我使用相同的命令后,SET search_path TO solwa_dev;
它仍然显示 $user 和 public 模式,但没有 solwa_dev 模式!
为什么会发生这种情况,我该如何解决这个问题?