如何删除Django 1.9中的DB(sqlite3)从头开始?

时间:2017-02-10 02:28:31

标签: django sqlite

我在模型中拼写错误,现在我的一个列拼写错误。我想删除数据库中的所有表,修复model.py中的错误,并在模型中使用正确的拼写重新创建数据库。

我尝试使用this article中的建议,但在按照其中列出的命令后,该表仍然存在。

任何人都有快速的方法吗?

4 个答案:

答案 0 :(得分:21)

  1. 删除django项目文件夹中的sqlite数据库文件(通常为db.sqlite3)(或放置它的任何位置)
  2. 删除所有django应用中 __init__.py 文件夹中除migration文件以外的所有内容
  3. 在模型中进行更改(models.py)。
  4. 运行命令 python manage.py makemigrations python3 manage.py makemigrations
  5. 然后运行命令 python manage.py migrate
  6. 这就是全部。

答案 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)

您可以删除您的sqlite文件。

关于您的问题,您应该使用Django迁移系统使用makemigrations和迁移命令为您的项目进行数据库更改

migration docs

答案 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')"

我希望它们通过直接粘贴粘贴运行。确保更改超级用户凭据。

注意-这将删除所有数据库及其对应的迁移