Подключение к базе данных PostGreSQL 7.3 в Python - PullRequest
3 голосов
/ 10 июня 2011

Мне нужно подключиться к старой базе данных PostGreSQL (версия 7.3), и я использую Python 3.2 на компьютере с XP. Пакет py-postgresql показался подходящим, но, похоже, он использует только протокол 3.0, который был реализован в версии 7.4. Я хотел бы подключиться к этой базе данных с помощью Python, но когда я попробовал, я получил неожиданную ошибку EOF, которая, как я считаю, является результатом пакета, использующего более новый протокол.

Я могу использовать программу pgAdminIII для подключения к базе данных просто отлично. Есть идеи?

Ответы [ 2 ]

6 голосов
/ 10 июня 2011

К сожалению, для вас и py-postgresql, и psycopg2 поддерживают только протокол v3.

Я думаю, что вы можете использовать только драйвер Postgres ODBC и подключиться к нему с помощью pyODBC или mxODBC .Существует порт Python 3.x для pyodbc, связанный с их главной страницей проекта.

3 голосов
/ 12 июня 2011

Попробуйте с PyGreSQL :

PyGreSQL - это модуль Python, который взаимодействует с базой данных PostgreSQL.В него встроена библиотека запросов PostgreSQL, позволяющая легко использовать мощные функции PostgreSQL из скрипта Python.

Текущая версия PyGreSQL 4.0 требует PostgreSQL 7.2 и Python 2.3 или выше.

EDIT:

Я провел некоторое тестирование на PostgreSQL 7.3 (скомпилировано из source в Debian Squeeze), и я вижу, что оно работает хорошо.Я изменил только одно свойство в postgresql.conf, чтобы локальные соединения работали хорошо в Python:

unix_socket_directory = '/var/run/postgresql'

После этого с помощью пакета python-pygresql (версия 4.0.2):

import pg
con1 = pg.connect('postgres', None, 5440, None, None, 'postgres', None)
con1.query('SELECT version()')
version
--------------------------------------------------------------------------------
PostgreSQL 7.3.21 on i686-pc-linux-gnu, compiled by GCC gcc (Debian 4.4.5-8) 4.4
(1 row)
con1.query('SELECT width, height FROM box')
width|height
-----+------
10   |15    
18   |25    
(2 rows)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...