Python Django不创建数据库表

Python Django不创建数据库表,python,django,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 ma

哎,, 我已经创建了一个数据库。现在,我已使用以下内容更新了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 syncdb
时:

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

但是,当我尝试向中插入数据时,并没有创建表。为什么?(我正在使用sqlite3进行本地测试)

manage.py syncdb
不会修改现有表以添加或删除字段。您需要手动修改数据库,或使用类似于创建自动数据库迁移的工具(这是我极力推荐的)

您是否已将应用添加到settings.pys中已安装的应用中

设置.py

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

好吧,我想我应该已经明白了。非常抱歉试图帮助一个没问题的家伙。无论如何,谢谢。
ManyToManyField
应该创建一个新表,而不是添加或删除列。即使使用
ManyToManyField
我也应该带我们去南方吗?他还可以运行
manage.py reset myapp
删除表格,从新数据开始。由于他正在添加一个不需要的字段,我想他也可以运行dumpdata来获取一个fixture,重置然后加载fixture。@Fred,它的工作方式是
syncdb
查看项目中的模型,然后查看数据库中该模型的表是否已经存在。如果是,则假定该模型的所有内容都已配置,这意味着它甚至看不到新的
ManyToManyField
。因此,是的,即使添加一个
ManyToManyField
只会创建一个新表,您仍然需要使用South(或者自己修改数据库)。当然,我可以手动创建表,但是索引呢?除了表之外,Django还为各种表创建索引。南方能管理这个吗?顺便说一句,我会在一段时间后检查它。从“为尚未创建表的已安装应用中的所有应用创建数据库表”。它应该创建表,但实际上并不总是这样,它可能是1.4中的一个bug(在1.3中从未见过),这是关于哪个版本的?无论如何,正如Keegan所提到的,
manage.py reset myapp
会正确地重新创建表。不幸的是,Django在这一领域真的很缺乏……看到了吗
INSTALLED_APPS = (
    ... ,
    'my_app',
)