Здравствуйте!
У меня в проекте происходит миграция данный из БД Mysql в Postgres. Название таблицы прописано прописными буквами, а колонок заглавными. Данные импортируются с названием колонок заглавными буквами.
Как в Postgres преобразовать заглавные в прописные буквы????
Логи
Ошибка выполнения SQL: ОШИБКА: столбец "id" не существует
LINE 1: ... = 'None', "USER_ID" = 'None', "SORT" = '200' WHERE ID = '1'
^
Ошибка подключения к БД: ОШИБКА: столбец "id" не существует
LINE 1: ... = 'None', "USER_ID" = 'None', "SORT" = '200' WHERE ID = '1'
^
Ошибка обновления записи в таблице b_abtest_14: ОШИБКА: столбец "id" не существует
LINE 1: ... = 'None', "USER_ID" = 'None', "SORT" = '200' WHERE ID = '1'
^
ID: 1, Данные: {'ID': '1', 'SITE_ID': 'None', 'ACTIVE': 'N', 'ENABLED': 'T',
'NAME': 'Новый дизайн', 'DESCR': 'Запустите А/B-тестирование для сравнения
текущего дизайна с новым, и убедитесь, что показатели конверсии нового шаблона сайта выше.',
'TEST_DATA': 'a:2:{s:2:"id";s:7:"sample1";s:4:"list";a:1:{i:0;a:3:{s:4:"type";s:8:"template";
s:9:"old_value";s:0:"";s:9:"new_value";s:0:"";}}}', 'START_DATE': 'None', 'STOP_DATE': 'None',
'DURATION': '0', 'PORTION': '30', 'MIN_AMOUNT': 'None', 'USER_ID': 'None', 'SORT': '200'}
ef update_by_id(table, id, key='id', **kwargs):
# тут необходимо указывать параметры в ковычка "". Тоже особенность postgres.
try:
update('{} SET {} WHERE {} = %s'.format(table, ', '.join('"{}" = %s'.format(k) for k in kwargs), key),
*(tuple(kwargs.values()) + (id,)))
except Exception as e:
print(f"Ошибка обновления записи в таблице {table}: {e}")
print(f"ID: {id}, Данные: {kwargs}")
raise