開発段階ではデータベースのロールバックを頻繁に行うことになるかもしれません.例えば comments アプリケーションのデータベースをロールバックしてみます.
(py39) C:\Users\lecture\Documents\django\django_comment>python manage.py migrate comments zero ⏎
Operations to perform:
Unapply all migrations: comments
Running migrations:
Rendering model states... DONE
Unapplying comments.0002_comment_body... OK
Unapplying comments.0001_initial... OK
(py39) C:\Users\lecture\Documents\django\django_comment>
マイグレーションの実行状況を確認します.
(py39) C:\Users\lecture\Documents\django\django_comment>python manage.py showmigrations ⏎ admin [X] 0001_initial [X] 0002_logentry_remove_auto_add [X] 0003_logentry_add_action_flag_choices auth [X] 0001_initial [X] 0002_alter_permission_name_max_length [X] 0003_alter_user_email_max_length [X] 0004_alter_user_username_opts [X] 0005_alter_user_last_login_null [X] 0006_require_contenttypes_0002 [X] 0007_alter_validators_add_error_messages [X] 0008_alter_user_username_max_length [X] 0009_alter_user_last_name_max_length [X] 0010_alter_group_name_max_length [X] 0011_update_proxy_permissions [X] 0012_alter_user_first_name_max_length comments [ ] 0001_initial [ ] 0002_comment_body contenttypes [X] 0001_initial [X] 0002_remove_content_type_name sessions [X] 0001_initial (py39) C:\Users\lecture\Documents\django\django_comment>
comments_comment テーブルが削除されたことも確認します.(ロールバックの作業を本番システムで実行してしまうと取り返しがつかないことになってしまいますね.)
sqlite> .tables ⏎
auth_group auth_user_user_permissions
auth_group_permissions django_admin_log
auth_permission django_content_type
auth_user django_migrations
auth_user_groups django_session
sqlite>
ロールバックができたので,テーブルの再生成とテストデータの再投入を行います.
(py39) C:\Users\lecture\Documents\django\django_comment>python manage.py migrate ⏎ Operations to perform: Apply all migrations: admin, auth, comments, contenttypes, sessions Running migrations: Applying comments.0001_initial... OK Applying comments.0002_comment_body... OK (py39) C:\Users\lecture\Documents\django\django_comment>python manage.py loaddata comments\fixtures\comment-data.json ⏎ Installed 10 object(s) from 1 fixture(s) (py39) C:\Users\lecture\Documents\django\django_comment>