【问题标题】:Syncdb command in Django 1.6.5 does not create new model class in models.py - says table already existsDjango 1.6.5 中的 Syncdb 命令不会在 models.py 中创建新的模型类 - 表示表已经存在
【发布时间】:2015-02-22 20:15:34
【问题描述】:

我正在关注 Django 上的 Udemy 教程,其中作者将新模型添加到 models.py 并运行 syncdb 命令将表添加到数据库。我正在尝试使用 Django 1.6.5 和 MySQL 5.5 来复制它。我搜索了其他问题,它们的场景略有不同。

我在文档中读到,您可以使用 syncdb 添加新模型,但您必须删除现有表或使用 South 迁移数据以更改现有表。我只是想添加一个新模型,但我得到了错误——表已经存在。

有人可以解释为什么我会收到这个错误,我应该只使用 South 并避免这种情况吗?

【问题讨论】:

    标签: python mysql django django-models syncdb


    【解决方案1】:

    创建数据库后,您不能简单地添加新模型。

    为了更新您的架构,您必须使用 south(用于 Django

    由于您使用的是 Django 1.6,因此您应该在 http://south.readthedocs.org/en/latest/tutorial/part1.html 中阅读它,然后使用该包迁移您的架构。

    如果有更多问题,请按照教程并在 Stack Overflow 上提问,它不应该太复杂

    【讨论】:

    • 您知道 South 是否可以在生产环境中用于 Google App Engine 吗?
    • 是的,这与您托管产品的方式没有任何关系。 South 为您提供了一种管理架构的方法——这意味着您可以向模型添加新字段、创建新模型、重命名字段、更改类型等。这就是此类技术的重点 - 帮助您在创建并填充数据后修改数据库的结构。
    猜你喜欢
    • 1970-01-01
    • 2012-06-01
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    • 2023-04-05
    • 2012-05-27
    • 1970-01-01
    • 2013-11-19
    相关资源
    最近更新 更多