【问题标题】:Django manage.py syncdb doing nothing when used with sqlite3Django manage.py syncdb 与 sqlite3 一起使用时什么也不做
【发布时间】:2011-03-06 15:26:33
【问题描述】:

我不确定这是否是特定于 sqlite 数据库的问题,但是在添加了一些属性后,我成功执行了 syncdb,但列仍然没有添加到数据库中,当我尝试在管理员中访问模型时,我得到 @ 987654322@错误。

为什么会发生这种情况,我该如何解决这个问题?

详细信息:Django 1.3、Python 2.6、OSX 10.6、PyCharm。

【问题讨论】:

  • 您的型号是否列在 settings.py 的 installed_apps 中?另外,你能发布你的models.py(或至少一个类)吗?您是否尝试使用新列更新当前现有的数据库?
  • 首先,app(模块)列在 settings.py 中,而不是模型(这就是它应该是这样的)。我尝试将新列添加到现有表中。这完全是因为如果我添加一个新模型,它就可以工作。
  • syncdb 不会将列添加到现有表中。您必须手动添加它们。见这里:code.djangoproject.com/wiki/SchemaEvolution
  • 如果我的回答给了你正确的见解,请将其标记为正确的

标签: python django sqlite


【解决方案1】:

创建表后,sync db 不会进行集成架构更改。您必须手动删除数据库并再次执行 syncdb。请参阅此链接中的盒装信息

http://docs.djangoproject.com/en/dev/ref/django-admin/#syncdb

【讨论】:

    【解决方案2】:

    与往常一样,syncdb 不会迁移现有架构。

    【讨论】:

      【解决方案3】:

      我认为可以在这里找到解决方案:一个从 Django 开始的不错的博客: Django REST Framework (DRF) 和 AngularJS 入门: http://engineroom.trackmaven.com/blog/getting-started-drf-angularjs-part-1/

      【讨论】:

        猜你喜欢
        • 2015-07-31
        • 2011-02-13
        • 2014-09-07
        • 2011-07-07
        • 2014-10-13
        • 1970-01-01
        • 1970-01-01
        • 2013-02-17
        • 1970-01-01
        相关资源
        最近更新 更多