Django : How to add a new field to a model makemigrations and migrate
Published on Aug. 22, 2023, 12:12 p.m.
In Django 1.7, in order to add a new field to a model you can simply run ./manage.py makemigrations and ./manage.py migrate and the new field will be added to your DB.
If you want to avoid dealing with errors for your existing models, you can use the – fake :
Initialize migrations for your existing models to include :
./manage.py makemigrations myapp
Validations for existing models for fake migrations:
./manage.py migrate --fake myapp
Add the new field to myapp.model:
from django.db import models
class MyModel(models.Model):
... #existing fields
newfield = models.CharField(max_length=100) #new field
Run makemigrations again
./manage.py makemigrations myapp
Run migrate again:
./manage.py migrate myapp