Django没有创建数据库表

时间:2011-06-01 22:50:33

标签: python django

嘿 我已经创建了一个数据库。现在我用UserProfile更新了:

class UserProfile(models.Model):
    user = models.ForeignKey(User, unique = True, related_name = 'user')
    follows = models.ManyToManyField("self", related_name = 'follows') <-- NEW LINE

所以python manage.py sqlall myapp让我回复:

[...]
CREATE TABLE "myapp_userprofile_follows" (
    "id" integer NOT NULL PRIMARY KEY,
    "from_userprofile_id" integer NOT NULL,
    "to_userprofile_id" integer NOT NULL,
    UNIQUE ("from_userprofile_id", "to_userprofile_id")
)
[...]

当我运行python manage.py syncdb时:

Creating tables ...
Installing custom SQL ...
Installing indexes ...
No fixtures found.

但是当我尝试将数据插入时,不会创建表。为什么? (我在本地测试,使用sqlite3)

2 个答案:

答案 0 :(得分:6)

manage.py syncdb不会修改现有表来添加或删除字段。您需要手动修改数据库,或者使用South之类的工具来创建自动数据库迁移(我强烈建议这样做)

答案 1 :(得分:5)

您是否已将您的应用添加到settings.pys中的INSTALLED_APPS:

<强> settings.py

INSTALLED_APPS = (
    ... ,
    'my_app',
)

https://docs.djangoproject.com/en/dev/ref/settings/?from=olddocs#installed-apps