什么是最简单的方法来生成一个脚本删除和创建数据库中的所有对象?



我习惯使用SQL Server和SQL Server管理工作室可以自动生成一个脚本来删除和重新创建数据库中的所有内容(表/视图/过程等)。我发现,当开发一个新的应用程序,并在本地数据库中编写一堆垃圾的基本测试,这是非常有帮助的选项,只是nuke整个事情,并重新创建它在一个干净的板,所以我正在寻找一个类似的功能在postgres/pgadmin。

PGAdmin有一个选项来生成一个创建脚本为一个特定的表,但右键单击每个表将是非常繁琐的,我想知道是否有另一种方法来做到这一点。

要重新创建一个干净的模式数据库,您可以使用Postgres服务器安装附带的pg_dump客户端。可以使用的选项有:

- c

——清洁

在输出创建数据库对象的命令之前,输出清理(删除)数据库对象的命令。(除非还指定了——if-exists,否则如果目标数据库中不存在任何对象,则恢复可能会生成一些无害的错误消息。)

在发出存档(非文本)输出文件时忽略此选项。对于存档格式,可以在调用pg_restore时指定该选项。

:

s

——模式

只转储对象定义(模式),不转储数据。

该选项与——data-only相反。它与指定——section=pre-data——section=post-data类似,但由于历史原因不完全相同。

(不要将其与——schema选项混淆,后者使用了不同含义的"schema"一词。)

要排除数据库中表的子集的表数据,请参见——exclude-table-data。

clean in Flyway

数据库迁移工具Flyway提供了一个clean命令,可以删除配置模式中的所有对象。

引用文档:

Clean对开发和测试有很大帮助。它将彻底清除已配置的模式,从而有效地为您提供一个全新的开始。所有对象(表、视图、过程等)都将被删除。

不用说:不要对你的生产数据库使用!

最新更新