我正在寻找一种简单的方法来删除数据库中的所有数据并保留结构(表,关系等)。我使用的是postgreSQL,但我认为,如果有执行此操作的命令,则它并不特定于postgres。
谢谢,
达米安
使用来转储架构pg_dump。删除数据库,重新创建它并加载架构。
pg_dump
将数据库模式(-s标记)转储到文件中:
pg_dump -s -f db.dump DB-NAME
删除数据库:
dropdb DB-NAME
重新创建它:
createdb DB-NAME
仅还原架构:
pg_restore db.dump > psql DB-NAME
这应该可以在PostgreSQL上运行;其他DBMS可能为此拥有自己的工具。我不知道有任何通用工具可以做到这一点。
编辑:
在注释之后,您可能要跳过该dropdb命令,而仅使用转储的架构创建另一个数据库。如果一切顺利,则可以删除旧数据库:
dropdb
pg_dump -s -f db.dump DB-NAME createdb DB-NEW-NAME pg_restore db.dump > psql DB-NEW-NAME
此时,您在DB-NAME拥有完整的数据库,在DB-NEW-NAME拥有一个空的架构。确定一切正常后,请使用dropdb DB-NAME。