Новый проект Python 3x PostgreSQL 9x и pg8000 1x DBAPI? - PullRequest
1 голос
/ 30 августа 2010

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

Очевидно, что Python и PostgreSQL являются зрелыми продуктами, но меня беспокоит pg8000 как в плане зрелости, так и в плане производительности. Будет ли страдать мой доступ к БД или он будет приемлемым?

Итак, пожалуйста, проявите некоторую свободу при ответе на мой вопрос. Pg8000 готов? Будут ли у меня проблемы с использованием спецификации Python DBAPI 2.0 для полного доступа при написании db-ориентированной программы?

Я знаю, что подобные вопросы мне задают все время, но я все же посмотрел и не смог найти ничего текущего, касающегося pg8000. И, очевидно, любой ответ, который не длится несколько месяцев, не будет актуальным, если учесть релизы, которые были переданы по связанным технологиям.

1 Ответ

0 голосов
/ 31 августа 2010

Я думаю, вы должны попытаться сделать драйвер вашей программы "независимым". Он должен работать с любым драйвером PostgreSQL DBAPI 2.0. Единственная разница будет в разделе импорта и при установлении соединения с БД. Это может выглядеть так:

use_pgdb = 0
try:
    import pgdb
    use_pgdb = 1
except:
    try:
        import psycopg2
    except:
        raise exceptions.ImportError('No PostgreSQL library, install psycopg2 or PyGres!')
if use_pgdb:
    _CONN = pgdb.connect(connect_string)
else:
    _CONN = psycopg2.connect(dsn)

Добавьте к этой «цепочке» драйверов pg8000 и просто попробуйте. Если все драйверы будут работать и производительность будет хорошей, оставьте эти драйверы. Если один из драйверов не будет работать или будет иметь низкую производительность, прокомментируйте его в своем коде и отключите его. Для более чем 2 драйверов я бы изменил код из примера и создал какой-то словарь с драйвером и функцией подключения.

...