You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Bash脚本在Docker容器的PostgreSQL指定库中创建Schema

在指定PostgreSQL数据库中创建Schema的正确Bash脚本写法

你遇到的问题根源很明确:执行CREATE SCHEMA命令时没指定目标数据库,默认会连接到postgres系统库,所以schema被建到了那里;而直接在schema名前加数据库前缀的写法不符合PostgreSQL语法,必然报错。

正确的做法是,在执行创建schema的psql命令时,通过-d参数指定要操作的目标数据库$DB_NAME,让命令在testdb的上下文里执行。修改后的脚本如下:

DB_NAME='testdb'
schm='testschema'

# 创建目标数据库
PGPASSWORD=$PGPASS psql -X -h localhost -p $DB_PORT -U postgres -c "CREATE DATABASE $DB_NAME;"
# 连接到目标数据库并创建schema
PGPASSWORD=$PGPASS psql -X -h localhost -p $DB_PORT -U postgres -d $DB_NAME -c "CREATE SCHEMA $schm;"

本质上PostgreSQL的CREATE SCHEMA是当前连接数据库的上下文操作,无法跨库直接指定,必须先连接到目标数据库再执行创建命令。

内容的提问来源于stack exchange,提问作者Alex Belke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 17:40:46