【问题标题】:Force syncdb to reset schema强制 syncdb 重置架构
【发布时间】:2013-11-16 15:02:35
【问题描述】:

我正在我的本地主机上开发一个新项目。由于我是唯一的开发人员并且该项目尚未上线,因此我不想/不需要使用迁移(目前)。

另外由于项目处于早期开发阶段,数据库模式需要经常更新,所以快速完成很重要。数据可能会丢失。

有没有办法强制 syncdb 更新模式,即使它已经存在?或者可能是一系列命令?

目前我正在使用外部 SQL 客户端手动删除表,然后运行 ​​syncdb ...但它变得乏味 - 特别是因为约束错误等。

在修改 Django 模型后,是否有更好/更快的方式刷新架构?,

【问题讨论】:

  • 如果您计划将来使用迁移并且现在需要它们,为什么不使用它们?
  • @Andy 因为使用 South 更新架构比删除表并重新运行 syncdb 需要更多时间,而且此时使用迁移并没有真正的好处。
  • 运行./manage.py schemamigration <app> --auto 来创建迁移和./manage.py migrate <app> 运行迁移需要更多时间吗?
  • @Andy 它还要求提供默认值等 :)

标签: database django orm django-models


【解决方案1】:

根据您的 Django 版本,我使用重置:

python manage.py reset <app-name>

将为您删除并重新同步该应用中的所有表格。我认为它已在 1.5 中被删除,也许是为了即将到来的南方整合。

【讨论】:

  • 是的,我在 dev 中找不到重置 :(
【解决方案2】:

在开发中,我通常只是删除整个数据库并创建另一个数据库。我在 linux 上使用 postgresql,那里有 CLI 命令可以让你快速做到这一点:

dropdb dbname

createdb dbname

python manage.py syncdb

【讨论】:

    猜你喜欢
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多