не может привести тип символов, изменяющихся [] к миграции jsonb django - PullRequest
0 голосов
/ 22 мая 2019

Я изменил свою модель с поля массива на поле json, теперь я получаю сообщение об ошибке

не могу привести символ типа, изменяющийся [] к jsonb LINE 1: ... LUMN "Анкеты" TYPE jsonb USING "Анкеты ":: JSONB.

Как это исправить?и как это произошло?

от

questionaires   = ArrayField(models.CharField(max_length=4000), null=True, blank=True)

до

questionaires   = JSONField(null = True,blank = True)

1 Ответ

1 голос
/ 21 июня 2019

Я думаю, вам нужно выполнить многоэтапную миграцию:

  1. Создать временное новое поле с типом JSONField: Ex questionaires_2
  2. Записать пользовательскую миграцию Python RunPython впреобразовать данные вручную
  3. Удалить старое поле: вопросники
  4. Переименовать временное поле в старое questionaires_2 -> вопросники

Дополнительные сведения: см. этот https://stackoverflow.com/a/21997589/533738

Не проверено !!!

ALTER TABLE <Your Table>
ALTER COLUMN questionaires TYPE JSONB
      USING translate(questionaires::text, '{}','[]')::JSONB;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...