从模板 SQLite 文件在 SQLite 中创建一个空数据库

Creating an empty database in SQLite from a template SQLite file

我有一个关于我确定经常出现的问题的问题,但我仍然找不到任何令人满意的答案。 假设我有一个巨大的原始 SQLite 数据库。现在,我想创建一个空数据库,该数据库使用所有 table、列和 primary/foreign 键进行初始化,但 table 中没有行。基本上,我想使用原始模板创建一个空 table。

初始数据库中每个 table 的“DELETE from {table_name}”查询不会执行,因为生成的空数据库最终有一个非常大的大小,就像原来的。据我了解,这是因为有关已删除行的所有日志仍在存储中。另外,我不知道原始 SQLite 文件中还存储了什么,我相信它可能存储了一些我不需要的其他 logs/garbage 东西,所以我宁愿从头开始创建一个空文件如果可能的话。 FWIW,我最终需要在带有 sqlite3 库的 Python 脚本中完成它。

谁能给我提供一个如何做到这一点的例子吗?一组 SQLite 查询或 python 脚本可以完成这项工作?

您可以使用Command Line Shell For SQLite

sqlite3 old.db .schema | sqlite3 new.db