Django未创建数据库表

5 投票
2 回答
8401 浏览
提问于 2025-04-16 18:48

嘿,

我已经创建了一个数据库。现在我更新了用户资料:

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 个回答

5

你有没有把你的应用程序添加到settings.py文件中的INSTALLED_APPS里呢?

settings.py

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

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

6

manage.py syncdb 这个命令不会改变已经存在的表格,也就是说它不会添加或删除字段。如果你想修改数据库,你要么手动去改,要么可以使用像 South 这样的工具来自动处理数据库的迁移(我非常推荐这种方法)。

撰写回答