Open In App

Django Migrations | Python

Improve
Improve
Like Article
Like
Save
Share
Report


Prerequisite: Django Models

No such table? –

The class defined in product/models.py is the mere idea of what our database is going to look like but it didn’t create any table in the database. We can assume class Phone as conceptual schema. Before the creation of any table, if we try to access the table before creation, it will throw an error like this.

OperationalError at /admin/product/phone/
no such table: product_phone

makemigrations command –

Python provides certain commands for user convenience so that without going into details of SQL,
a user can interact with the database. Now, we have created the class (conceptual schema of the database), we can use migrate command to create the actual schema in the database. Stop the server using CTRL+C if running and run the following command in the database.

python manage.py makemigrations

Above command will let the project know that we want to make changes in the database. You will see following quoting that Create model Phone.
makemigrations
what does this command do? This command will generate SQL statements that are supposed to be executed if we wish to make changes in the database.
If you want to see the generated commands, navigate to product/migrations/0001_initial.py. You will see file content
first-migration
If you try to run the server now using command

python manage.py runserver

you will see

You have 1 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): product. Run ‘python manage.py migrate’ to apply them.

As written in warning, run

python manage.py migrate

in your terminal. This will result in creation of table in database.
first-migrate


Last Updated : 03 Jul, 2019
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads