Почему моя миграция Postgres с использованием Alembic не удалась?Python

Программы на Python
Ответить
Anonymous
 Почему моя миграция Postgres с использованием Alembic не удалась?

Сообщение Anonymous »

Мне трудно понять, почему моя миграция Alembic на Postgres 17 не удалась.
Вот фрагмент моей функции обновления Alembic, которая не удалась:< /p>

Код: Выделить всё

op.execute("""
UPDATE reviews
SET
config = json_build_object(
'model', replace(model, '"', '\"'),
'endpoint', json_build_object(
'url', replace(uri, '"', '\"')
)
),
custom_data = COALESCE((
SELECT json_object_agg(combined.key, combined.value)
FROM (
SELECT key, value FROM json_each_text(COALESCE(metadata, '{}'::json))
UNION ALL
SELECT key, value FROM json_each_text(COALESCE(rating, '{}'::json))
) AS combined
), '{}'::json);

""")
и пользовательские метаданные — это новые столбцы. При заполнении используются значения в существующих столбцах. Они оба типа JSON.
Ошибка:

Код: Выделить всё

sqlalchemy.exc.ProgrammingError: (pg8000.dbapi.ProgrammingError) cannot deconstruct a scalar

Код: Выделить всё

metadata
и рейтинг являются столбцами JSON, допускающими значение NULL. В существующих данных, которые я переносю, значения метаданных и рейтинга равны нулю для всех строк. Итак, я не понимаю, к чему относится эта ошибка. Любая помощь будет принята с благодарностью!

Подробнее здесь: https://stackoverflow.com/questions/792 ... ic-failing
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»