How do I delete DB (sqlite3) in Django 1.9 to start from scratch?

前端 未结 4 1715
庸人自扰
庸人自扰 2020-12-07 15:28

I made a spelling error in my model and now one of my columns is misspelled. I\'d like to drop all tables in the database, fix the error in the model.py, and recreate the da

相关标签:
4条回答
  • 2020-12-07 15:33

    rm -f tmp.db db.sqlite3 rm -r my-app/migrations python manage.py makemigrations python manage.py migrate

    Removes the database.
    Removes the migrations from your app.
    Re-runs the migrations. Note: you could also do: python manage.py makemigrations my-app
    Migrate changes.

    0 讨论(0)
  • 2020-12-07 15:49
    1. Delete the sqlite database file (often db.sqlite3) in your django project folder (or wherever you placed it)
    2. Delete everything except __init__.py file from migration folder in all django apps (eg: rm */migrations/0*.py)
    3. Make changes in your models (models.py).
    4. Run the command python manage.py makemigrations or python3 manage.py makemigrations
    5. Then run the command python manage.py migrate.

    That's all.

    If your changes to the models are not detected by makemigrations command, please check this answer

    0 讨论(0)
  • 2020-12-07 15:52

    To do everything in one go, run all below commands in a shell script (Linux flavors) or in a batch file (Windows). and run that script where your manage.py exists:

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

    I prefer them running by copy-pasting directly in one go. make sure to change superuser credentials.

    Note- This will DELETE all databases and their corresponding migrations

    0 讨论(0)
  • 2020-12-07 15:53

    You can just delete your sqlite file.

    Regarding your question, you should use Django migration system to do database changes for you project using makemigrations and migrate commands

    migration docs

    0 讨论(0)
提交回复
热议问题