web-dev-qa-db-fra.com

SQLALCHEMY OU PSYCOPG2?

J'écris un script rapide et sale qui nécessite une interaction avec une base de données (PG).

Le script est une solution pragmatique et tactique à un problème existant. Cependant, j'envisage que le script évoluera au fil du temps dans un système plus "raffiné". Compte tenu du fait qu'il est en train d'être rassemblé très rapidement (c'est-à-dire que je n'ai pas le temps de verser d'énormes pousses de documentation), je suis tenté de suivre la route rapide et sale, à l'aide de Psycopg.

Les avantages pour Psycopg2 (comme je le comprends actuellement) est que:

  1. écrit en C, donc plus rapide que SQLalchemy (écrit en python)?
  2. Aucune couche d'abstraction sur le dbapi puisque fonctionne avec un dB et un dB uniquement (implication -> rapide)
  3. (Pour l'instant), je n'ai pas besoin d'un orj, je peux donc directement exécuter mes déclarations SQL sans avoir à apprendre une nouvelle syntaxe ORM (c'est-à-dire léger)

Désavantages:

  1. Je sais que je voudrais un orje plus loin dans la ligne
  2. psycopg2 est ("daté"?) - Je ne sais pas combien de temps il restera autour de

Sont mes perceptions de Sqlalchemy (courbe d'apprentissage gonflées, gonflées/interprétées, gonflées) vraies - IS là-bas de toute façon, je peux utiliser SQLalchemy dans la méthode "rugueuse et prête" que je veux utiliser psycopg - à savoir:

  1. exécutez directement des instructions SQL sans avoir à désordre avec la couche ORM, etc.

Des exemples de faire cela disponible?

32

SQLALCHEMY est un orm, psycopg2 est un pilote de base de données. Ce sont des choses complètement différentes: Sqlalchemy génère Status SQL et PSYCOPG2 envoie des instructions SQL à la base de données. Sqlalchemy dépend de Psycopg2 ou d'autres pilotes de base de données pour communiquer avec la base de données!

En tant que couche logicielle plutôt complexe, Sqlalchemy ajoute des frais généraux, mais il s'agit également d'un énorme boost à la vitesse de développement, au moins une fois que vous avez appris la bibliothèque. Sqlalchemy est une excellente bibliothèque et vous apprendra tout le concept ORM, mais si vous ne voulez pas générer des déclarations SQL pour commencer, vous ne voulez pas SQLalchemy.

52
Jochen Ritzel