Можно ли использовать django-pyodbc с драйвером ODBC iSeries Access?

Я пытаюсь заставить Django-pyodbc работать с DB2 на IBM i, используя стандартный драйвер ODBC IBM i Access. Я знаю, что существует реализация Django DB, поддерживаемая IBM, но для этого требуется продукт DB2 Connect, который (для нас) непомерно дорог, тогда как входящий в комплект драйвер ODBC для доступа поставляется бесплатно с ОС.

Я видел вопрос, заданный относительно django-pyodbc с iSeries ODBC, предполагающий, что это возможно, но я не нашел способа заставить его работать: https://stackoverflow.com/questions/25066866/django-inspectdb-on-db2-database

Поэтому мой первый вопрос: Кому-нибудь удалось заставить эту установку работать? И если да, можете поделиться информацией о том, как вы это сделали?

Спасибо, Ричард


person RichardX    schedule 26.02.2015    source источник
comment
Я хочу сделать именно это по тем же причинам, которые вы цитируете. Вам удалось?   -  person W.Prins    schedule 16.08.2016
comment
Нет, к сожалению нет. Я сдался. Драйвер Django DB2 был адаптирован для Python, встроенного в IBM i, но пока он не работает полностью безупречно.   -  person RichardX    schedule 18.08.2016
comment
Верно, спасибо. Вы уже сталкивались с этим вопросом: stackoverflow.com/questions/35461388/ Это связано с преобразованием SQLAlchemy из драйвера IBM DC в замену драйвера PyODBC, который похож на приведенный выше, но для SQLAlchemy. Короче говоря, сегодня днем ​​я провел время, проверяя этот пост и пакет ibm_db_sa. Оказывается, он содержит модуль pyodbc.py с диалектным классом AS400Dialect_pyodbc.   -  person W.Prins    schedule 18.08.2016
comment
Однако не сразу очевидно, как правильно использовать этот класс вместо класса по умолчанию (возможно, из-за моего невежества), некоторые проблемы также могут быть вызваны проблемами Python 2/3, поскольку код IBM — это Python 2, в то время как получилось) Я пытался заставить это работать в Python 3.5.1. С положительной стороны, мне в конце концов после некоторого взлома удалось заставить SQLAlchemy, по крайней мере, извлекать данные через обычный драйвер ODBC (и с использованием Python 3), что, как я полагаю, означает, что можно сделать то же самое с Django и т. д.   -  person W.Prins    schedule 18.08.2016
comment
Если я правильно помню, проблема возникает только при попытке использовать Django (я пробовал с 1.8). Я не прошел первоначальную миграцию проекта. Простое подключение и получение некоторых данных отлично работало в простом Python 3.   -  person RichardX    schedule 22.08.2016
comment
Спасибо за комментарий. Пытаясь создать один из инструментов отражения SQLA, pypi.python.org/pypi/sqlacodegen - - что-то вроде создания работы Djangos models.py), я также столкнулся с дополнительными проблемами в отношении Python 3, как вы предложили, - не уверен, были ли они такими же конкретными проблемами или нет. Однако мне удалось исправить их все, и теперь мне удалось успешно выполнить отражение SQLA iSeries, с которым я работаю. (Огромное количество таблиц/классов.) В конце концов я вернусь к Django и опубликую дальнейшие выводы.   -  person W.Prins    schedule 22.08.2016