Новый проект Python 3X PostgreSQL 9X и PG8000 1X DBAPI?
-
02-10-2019 - |
Вопрос
Я начинаю некоторые новые проекты и хотите знать, считается ли PG8000 хорошим выбором для производственного проекта?
Очевидно, что Python и PostgreSQL являются зрелыми продуктами, но я обеспокоен PG8000 как, когда дело доходит до зрелости и производительности. Мой доступ БД страдает или будет приемлемым?
Итак, пожалуйста, возьмите некоторую широту реагирования на мой вопрос. PG8000 готов? Будут ли у меня проблемы с использованием спецификации Python DBAPI 2.0 для полного доступа при написании RED Centric Program?
Я знаю, что вопросы, как это все время спрашивают, но я посмотрел и не смог найти ничего тока, относящегося к PG8000. И, очевидно, любой ответ, кроме нескольких месяцев, не будет током, учитывая релизы, которые были совершены в отношении связанных технологий.
Решение
Я думаю, что вы должны попытаться сделать драйвер вашего программа «независимым». Он должен работать с любым водителем 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 драйверов я бы изменил код из примера и создаю какой-то словарь с драйвером и функцией подключения.