我在模型中拼写错误,现在我的一个列拼写错误。我想删除数据库中的所有表,修复model.py中的错误,并在模型中使用正确的拼写重新创建数据库。
我尝试使用this article中的建议,但在按照其中列出的命令后,该表仍然存在。
任何人都有快速的方法吗?
答案 0 :(得分:21)
db.sqlite3
)(或放置它的任何位置)__init__.py
文件夹中除migration
文件以外的所有内容models.py
)。python manage.py makemigrations
或python3 manage.py makemigrations
python manage.py migrate
。这就是全部。
答案 1 :(得分:2)
rm -f tmp.db db.sqlite3
rm -r my-app/migrations
python manage.py makemigrations
python manage.py migrate
删除数据库
从您的应用中删除迁移
重新运行迁移。注意:你也可以这样做:python manage.py makemigrations my-app
迁移变更。
答案 2 :(得分:0)
答案 3 :(得分:0)
要一次性完成所有操作,请在Shell脚本(Linux风格)或批处理文件(Windows)中运行以下所有命令。并在您的manage.py
存在的地方运行该脚本:
find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
find . -path "*/migrations/*.pyc" -delete
find . -path "*.sqlite3" -delete
python manage.py makemigrations
python manage.py migrate
python manage.py migrate
python manage.py shell -c "from django.contrib.auth.models import User; User.objects.create_superuser('admin', 'admin@example.com', 'adminpass')"
我希望它们通过直接粘贴粘贴运行。确保更改超级用户凭据。
注意-这将删除所有数据库及其对应的迁移