Мигратоны Django терпят неудачу при добавлении нового поля - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь добавить новое поле в мою базу данных postgreSql на другом сервере.При добавлении нового поля с именем 'aceptada' в ReservaSimple в models.py

После применения изменения я использовал

python3 manage.py makemigrations

python3 manage.py migrate

Однако он говорит, что никаких изменений не обнаруженои что я не должен повторно загружать модель. Ошибка миграции

Я пытался удалить базу данных и выполнить миграцию снова с новым файлом model.py, измененным с новым атрибутом, но когда я выполняю миграцию, никакие изменения не применяются кстолбцы postgreSql. Я также попытался удалить каталог миграций в приложении, выполнить повторную миграцию и создать столбец вручную.Однако при запуске сервера я всегда получаю эту ошибку. ошибка сервера

Редактировать:

Я пытался выполнить следующие шаги:

Удалить базу данных

kafka_db=# DROP DATABASE final_db;
DROP DATABASE

Удалить добавленное поле из models.py

class ReservaSimple(models.Model):
    fecha_inicio = models.DateField(null = False)
    fecha_fin = models.DateField(null = False)
    comentarios = models.CharField(null = False, blank = True, max_length = 50)
    costo_final = models.FloatField(null = True)

Удалить добавленное поле из serializers.py

class ReservaSimpleSerializer(serializers.ModelSerializer):
    class Meta:
            model = ReservaSimple
            fields = ('fecha_inicio', 'fecha_fin', 'comentarios', 'costo_final')

Создать базу данных

kafka_db=# CREATE DATABASE final_db OWNER ROOT;
CREATE DATABASE

Запустить миграцию

python3 manage.py migrate

Ответ

Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying aplicacion.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 auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying sessions.0001_initial... OK

Снова добавлено поле к models.py

class ReservaSimple(models.Model):
    fecha_inicio = models.DateField(null = False)
    fecha_fin = models.DateField(null = False)
    comentarios = models.CharField(null = False, blank = True, max_length = 50)
    costo_final = models.FloatField(null = True)
    aceptada = models.IntegerField(null = True)

Добавлено поле к serializers.py

class ReservaSimpleSerializer(serializers.ModelSerializer):
    class Meta:
            model = ReservaSimple
            fields = ('fecha_inicio', 'fecha_fin', 'comentarios', 'costo_final', 'aceptada')

СделаноМиграции

m.leona@ISIS2503-015:~/nidooFinal$ python3 manage.py makemigrations
/usr/local/lib/python3.5/dist-packages/django/db/models/base.py:299: 
RuntimeWarning: Model 'aplicacion.reservasimple' was already registered. 
Reloading models is not advised as it can lead to inconsistencies, most 
notably 
with related models.
new_class._meta.apps.register_model(new_class._meta.app_label, new_class)
No changes detected 

Запустите миграцию

Operations to perform:
Apply all migrations: admin, aplicacion, auth, contenttypes, sessions
Running migrations:
No migrations to apply.

Сделано выбор * из таблицы

final_db=# select * from aplicacion_reservasimple;
id | fecha_inicio | fecha_fin | comentarios | costo_final 
----+--------------+-----------+-------------+-------------
(0 rows)

final_db=# 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...