如何让我的数据库反映对models.py所做的更改?

时间:2014-10-13 06:30:33

标签: django django-models

我对我的模型进行了更改,我不能为我的生活弄清楚如何让我的数据库反映我的模型。到目前为止,我尝试了以下内容:

python manage.py shelldb
SELECT * FROM sqlite_master WHERE type='table';
DROP TABLE appname_modelname;

当我尝试时,我得到了:“未知命令:shelldb”。

我也尝试过:

python manage.py dbshel​​l DROP TABLE accounts_userreview;

没有错误,但我的数据库仍然没有反映我的模型。

最后,我只是通过将数据库拖入垃圾桶然后执行syncdb来删除我的数据库,然后让我创建一个新的超级用户,但是STILL创建的数据库并不反映我的模型的更改。

我在这里不知所措,我还能在这做什么?另外,我是学习Django的新手,模型和我的数据库之间是否有某种层?我认为自从删除然后重建数据库不起作用。

非常感谢这里的任何建议。

2 个答案:

答案 0 :(得分:2)

如果你在Django< 1.7,你必须使用一些迁移工具,即 - South。 Django 1.7具有内置迁移功能。

了解更多信息migrations

答案 1 :(得分:1)

在终端中运行这些命令以进行Django 1.7的迁移 python manage.py makemigrations python manage.py syncdb

对于Django< 1.7 使用南