6. Database Migration¶
“Migrations are Django’s way of propagating changes you make to your models (adding a field, deleting a model, etc.) into your database schema.”
Now that you have created the models, the next step is to create the tables in the database.
6.1. Create the migration¶
The first step is to create a migration so that Django’s migration framework knows about the new models you created. You do that by running the makemigrations command:
$ python manage.py makemigrations marcador Migrations for 'marcador': 0001_initial.py: - Create model Bookmark - Create model Tag - Add field tags to bookmark
This will create the new file
0001_initial.py in the directory
migrations of the app
marcador |-- __init__.py |-- admin.py |-- migrations | |-- 0001_initial.py | `-- __init__.py |-- models.py |-- tests.py `-- views.py
6.2. Migrate the database¶
After that you have to apply the migration you just created as well as the already existing migrations to create the database schema by using the migrate command:
$ python manage.py migrate Operations to perform: Synchronize unmigrated apps: staticfiles, messages Apply all migrations: admin, contenttypes, marcador, auth, sessions Synchronizing apps without migrations: Creating tables... Running deferred SQL... Installing custom SQL... Running migrations: Rendering model states... DONE Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying marcador.0001_initial... OK Applying sessions.0001_initial... OK
Now all tables defined in the migrations have been created in the database.