删除所有表以在 Django 中运行 syncdb 的最简单方法?
Posted
技术标签:
【中文标题】删除所有表以在 Django 中运行 syncdb 的最简单方法?【英文标题】:Easiest way to drop all tables to run syncdb in Django? 【发布时间】:2016-04-01 20:31:27 【问题描述】:我不断对我的 Django 模型进行细微的更改。我不关心我不断添加的测试数据,我只想删除所有表(模型),以便我可以再次运行syncdb
。 manage.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 的最简单方法?的主要内容,如果未能解决你的问题,请参考以下文章
运行 Django 的 syncdb 时 OSX 10.7.3 上的 Postgresql 套接字错误
Django 1.5:使用 postgresql-psycopg2 运行“python manage.py syncdb”时 Windows 中的 OperationalError