Ошибка теста Django: столбец не существует - PullRequest
0 голосов
/ 18 мая 2018

Postgresql, Django 2.0, Python 3.6.4

После запуска миграции, которая изменила имя поля desktop_pay на просто pay, я получаю сообщение об ошибке при запуске manage.py test говоря, что столбец pay не существует.

Вот миграция:

from django.db import migrations


class Migration(migrations.Migration):

    dependencies = [
        ('instructions', '0055_auto_20180517_1508'),
    ]

    operations = [
        migrations.RenameField(
            model_name='instruction',
            old_name='desktop_pay',
            new_name='pay',
        ),
    ]

Вот ошибка:

> python .\manage.py test
Creating test database for alias 'default'...
Traceback (most recent call last):
  File "C:\Python36\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
    return self.cursor.execute(sql, params)
psycopg2.ProgrammingError: column instructions_instruction.pay does not exist
LINE 1: "...on"."quota", "instructions_instruction"."target", "instructi...
                                                              ^

Если я запускаю приглашение psql,хотя я ясно вижу, что столбец существует, по крайней мере, в «реальной» таблице.

mydatabase=> \d+ instructions_instruction
                                                              Table "public.instructions_instruction"
       Column        |          Type          | Collation | Nullable |                       Default                        | Storage  | Stats target | Description
---------------------+------------------------+-----------+----------+------------------------------------------------------+----------+--------------+-------------
 id                  | integer                |           | not null | nextval('instructions_instruction_id_seq'::regclass) | plain    |              |
 quota               | smallint               |           | not null |                                                      | plain    |              |
 pay                 | numeric(5,2)           |           | not null |                                                      | main     |              |

### etc...

Что здесь происходит?Почему Джанго не находит колонку?Как я могу отладить это?

1 Ответ

0 голосов
/ 19 мая 2018

Я столкнулся с этими ошибками «столбца не существует», когда мои миграции каким-то образом запутались, иногда это происходило, когда я случайно удалял / перезаписывал миграции, но у меня также это происходило, просто выполняя типичные миграции, которыеЯ не могу объяснить.

Так что, я думаю, вам придется точно определить проблему в ваших миграциях.Для меня сработало то, что после подтверждения того, что моя схема была на самом деле такой, какой я хотел, сбросить миграции с помощью сценария № 2 здесь .

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