删除所有表以在 Django 中运行 syncdb 的最简单方法?

Posted

技术标签:

【中文标题】删除所有表以在 Django 中运行 syncdb 的最简单方法?【英文标题】:Easiest way to drop all tables to run syncdb in Django? 【发布时间】:2016-04-01 20:31:27 【问题描述】:

我不断对我的 Django 模型进行细微的更改。我不关心我不断添加的测试数据,我只想删除所有表(模型),以便我可以再次运行syncdbmanage.py flush 不会删除表架构,它只是删除数据。

Django 1.6 中是否有更快的删除所有表的功能?

【问题讨论】:

您可以使用迁移 - 无需在每次更改时删除所有表。 如果您不关心这些表,最好删除整个数据库并重新创建它。如何执行此操作取决于您使用的数据库。 Django drop all tables from database的可能重复 【参考方案1】:

1) Django 1.6 是不受支持的 Django 版本https://www.djangoproject.com/download/#supported-versions

您可以看到 Django 1.6 支持到 2015 年 4 月。所以现在尝试迁移到 1.8 LTS 或 1.9 并在您的 Django 项目中进行迁移,或者将 South 集成到您的旧 Django 应用程序中以进行迁移http://south.readthedocs.org/en/latest/index.html

2) 没有,在 Django 1.6(django-admin/manage.py 命令)中没有更快的功能可以删除所有表。在这个旧版本中更接近的是:

manage.py sqlclear appname

并将输出放入您的 sql shell,也许可以使用管道。

manage py sqlclear appname | manage.py dbshell

至少在 mysql 上运行良好。

【讨论】:

以上是关于删除所有表以在 Django 中运行 syncdb 的最简单方法?的主要内容,如果未能解决你的问题,请参考以下文章

带有表变量的动态查询以循环遍历所有表以在数据库中更新

如何过滤我的表以在 Oracle 中显示结果?

运行 Django 的 syncdb 时 OSX 10.7.3 上的 Postgresql 套接字错误

Django 1.5:使用 postgresql-psycopg2 运行“python manage.py syncdb”时 Windows 中的 OperationalError

Django-MySQL 启用 Row_Format=使用 syncdb 压缩

django 在服务器上的 syncdb 期间出错