psql 执行多个 sql 文件

for %i in (*.sql) do psql -U 数据库用户名 -d 数据库名 -f "%i"

  • psql 支持 -f 参数指定单个文件,但不支持 -f *.sql 这种通配符写法

  • 必须用 shell 循环,比如:

    |------------------------------------------------------------------------------------|
    | for f in ./migrations/*.sql; ``do psql -U postgres -d mydb -f ``"$f"``; done |

  • -v ON_ERROR_STOP=1 让任意一条 SQL 报错就中断,避免后续文件继续执行

  • 如果文件里含 \c otherdbCREATE DATABASE,得拆成不同 psql 调用------因为 psql 不会在同一个会话里跨库执行

使用find生成主加载脚本.

让我们继续创造这个结构。

复制代码
01/
├── 01_schema.psql
├── 02_types.psql
└── 10_tables
    ├── 01_foo.psql
    └── 02_bar.psql

下面是我们用来创建它的命令。

复制代码
mkdir 01
touch 01/01_schema.sql
touch 01/02_types.sql
mkdir 01/10_tables
touch 01/10_tables/01_foo.sql
touch 01/10_tables/02_bar.sql

现在您可以使用find生成一个加载脚本

复制代码
find ./01/ -type f -printf '\\i %p\n' | sort | tee master.psql
\i ./01/01_schema.sql
\i ./01/02_types.sql
\i ./01/10_tables/01_foo.sql
\i ./01/10_tables/02_bar.sql

现在只运行master.psql

复制代码
psql -d database -f master.psql
相关推荐
2601_962218617 小时前
万象生鲜系统业财一体化底层打通技术自动生成经营账单
大数据·数据库·人工智能·python·算法
李高钢7 小时前
Python FastAPI 框架入门:从零搭建你的第一个高性能 API 服务
数据库·python·fastapi
yuzhiboyouye9 小时前
那xml对应的sql语法,列举一下
xml·数据库·sql
. . . . .9 小时前
乐观锁 vs 悲观锁
数据库·sql
Leo.yuan9 小时前
2026年多数据库实时同步的四种架构方案及工具推荐
数据库·架构
hasty10 小时前
Origin 校验不是身份认证:MySQL MCP Server 漏洞给 AI 平台的警告
数据库·mysql·安全
梦想平凡11 小时前
百游棋牌源代码开发搭建教程(五):房间创建、座位分配与请求幂等实现
前端·javascript·数据库·源代码管理
凤山老林11 小时前
Spring Boot 整合 Flowable 的企业级落地指南
数据库·spring boot·后端·flowable·工作流
企业数字化笔记11 小时前
AI写的系统出现504怎么办?接口超时和数据库慢查询排查
数据库·后端
2601_9622186112 小时前
万象生鲜系统订单全生命周期状态同步技术实现业务可视
大数据·数据库·人工智能·python·算法