Согласен с Павлом. А если по пунктам, то обычно новые поля добавляются с пол пинка. Это вот изменения названий моделей, там могут быть засады и нужно поплясать с бубном (я открывал базу и изменял названия таблиц)(да и то я думаю, что это особенности sqlite и с каким-нибудь MySql а тем паче PostgreSQL вообще всё прошло бы гладко), но в вашем случае нужно действительно смотреть на ошибки.
С чем например сталкивался я.
- Например если поле обязательное, то (когда уже существуют записи) может заругаться, что необходимо какое-то значение. И тут можно прописать параметр default в новом поле.
- Ещё я как-то сталкивался с засадой, когда добавил модель единиц измерений и в другую существующую модель добавил зависимость (units = models.ForeignKey(Units, on_delete=models.PROTECT)) и вот тут кажется при makemigrations оно меня тоже что-то там спрашивало, но поглядев яндекс-гугл, я ввёл значение (оно требовало что-нибудь ввести) и всё получилось.
Поэтому да, нужно смотреть в каждом конкретном случае. Главное не боятся. Кстати!!! Я ещё делаю вот такой финт ушами, как снимание дампа базы и потом его обратное заполнение. Это я делал для двух вещей. Во-первых для того, чтобы перейти с sqlite на PostgreSQL и не заполнять базу снова и для того, чтобы можно было через Bitbucket (или GitHub) переносить проект и базу в том числе.
Сливаем базу так (в терминале):
python manage.py dumpdata --indent=2 --exclude=contenttypes > datadump.json
Потом меняем подключение (или переносим например на другой комп или делаем после создания новой базы)(пишем поочерёдно 3 команды):
python manage.py makemigrations
python manage.py migrate --run-syncdb
python manage.py loaddata datadump.json