【问题标题】:Clarification on django syncdb --all option关于 django syncdb --all 选项的说明
【发布时间】:2014-07-04 08:30:47
【问题描述】:

我想了解./manage.py syncdb --all 到底是做什么的?我最近遇到了一个数据库问题,我可以通过运行这个命令来解决这个问题,但我不确定它在幕后做了什么。我了解 syncdb 为未使用南迁移的已安装应用程序创建表,并且除非指定 --all 选项,否则将忽略受南迁移控制的应用程序,但我对实际发生的情况和何时使用感到困惑它。我在django-admin docs 上找不到有关该选项的任何信息,并且手册页仅说明了该选项。

--all                 Makes syncdb work on all apps, even migrated ones. Be
                        careful!

为什么我需要小心?这究竟是在做什么?它是完全删除数据库并重新开始,我认为这会导致我丢失存储在数据库中的所有数据(对吗?),还是这里发生了其他事情?如果有区别,我正在使用 Django 1.6。

【问题讨论】:

    标签: django django-1.6 django-syncdb


    【解决方案1】:

    当你安装 south 时,它会用自己的命令替换 Django 的 syncdb 命令。 south version of syncdb--all 选项,但不推荐:

    如果您想在所有应用程序上运行syncdb,请使用--all,但请注意;这将使您的数据库架构和迁移不同步。如果你这样做,你也许可以通过以下方式修复它:

    syncdb 命令从不删除表。您需要小心,因为您不希望数据库架构和迁移不同步。

    【讨论】:

    • 感谢您的回答,但数据库不同步究竟意味着什么?
    • 当您使用南迁移架构时,它会在数据库中存储迁移已“完成”的信息。如果使用.syncdb --all 创建表,则表已创建,但迁移数据未更新,因此数据库架构和迁移不同步。
    猜你喜欢
    • 1970-01-01
    • 2017-01-31
    • 1970-01-01
    • 2019-08-29
    • 2019-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多