Migrations is Django’s way of propagating changes you make to your models (adding a field, deleting a model, etc.) into your database schema.
concept difference
makemigrations is responsible for packaging up your model changes into individual migration files; migrate is responsible for applying those changes to your database.