psql clean/reset 数据库到模式

psql clean/reset database to just schema

我对我的数据库进行了导入,但它带有内容。我想将数据库重置为仅模式。这意味着 tables 的所有内容都已删除,但 tables 的架构仍然存在。并且自动递增字段被重置为从头开始。

这可以用 psql 实现吗?我看到使用特定 table 命令删除内容的命令,我只想要一个通用的 psql reset-to-schema.

转储您的数据库(使用 pg_dump),删除并重新创建数据库(您现在有一个空数据库)并恢复所有模式数据(使用 pg_restore 和选项 --schema-only).这只会恢复数据定义(表、类型、序列、函数等),而不是数据本身。

有关更多选项,请查看手册。如果根据需要设置了所有 PG 环境变量,您可能会使用这些行,否则您至少需要指定一些连接信息:

pg_dump -F c -f <dump_file_name_here> <db_name_here>
pg_restore -c -C -F c -d <db_name_here> --schema-only <dump_file_name_here>

也可以将选项 --schema-only 放在 pg_dump 上。如果您不想再使用这些数据,这可能会带来巨大的加速。