SQLAlchemy ProgrammingError - как отлаживать? - PullRequest
1 голос
/ 17 августа 2010

Я использую SQLAlchemy 0.5.8 и вижу эту ошибку:

ProgrammingError: (ProgrammingError) can't adapt 'INSERT INTO enumeration_value (id,
key_id, code, name, notes) VALUES (%(id)s, %(key_id)s, %(code)s, %(name)s, %(notes)s)' 
{'key_id': 'aac6fc29-4ccd-4fe4-9118-cfbbd04449fe', 'notes': '', 'code': (u'Barnet',), 
'id': 'd0540c97-882e-4a5b-bf14-b3ebcfeea051', 'name': (u'Barnet',)}

Но прямая вставка SQL со значениями из ошибки, кажется, работает нормально:

=> INSERT INTO enumeration_value (id, key_id, code, name, notes) 
VALUES ('d0540c97-882e-4a5b-bf14-b3ebcfeea051', 'aac6fc29-4ccd-4fe4-9118-cfbbd04449fe', 
'Barnet', 'Barnet', '');
INSERT 0 1

Если прямой SQL работает нормально, как я могу начать отлаживать это?

Кстати, в строке, которая выдает ошибку, похоже, вообще нет оператора INSERT, поэтому я немного запутался:

  File "----barnet.py", line 117, in load_file
    instance = model.Session.query(model.EnumerationValue).filter_by(key=key_barnet_level_2, code=level_2).all()

Создают ли операторы фильтра SQLAlchemy команды INSERT или это просто последняя строка перед тем, как что-то пойдет не так?

1 Ответ

1 голос
/ 17 августа 2010

Разобрался - проблема была в синтаксической ошибке на несколько строк выше, с ложной запятой:

key_from = code,

Извините, если я впустую потратил время. Пожалуйста, закройте вопрос.

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