Oracle
 sql >> Base de données >  >> RDS >> Oracle

Déploiement de cx_Oracle sur différentes versions d'Oracle Client

Si vous souhaitez créer plusieurs versions de cx_Oracle (par exemple :cx_Oracle10g, cx_Oracle11g, etc.), vous devrez modifier le script cx_Oracle setup.py. La dernière étape du script est un appel à setup(); le premier paramètre est le nom du module à construire. Tout ce que vous avez à faire est de changer "cx_Oracle" à "cx_Oracle" + ver , où ver est 10g , 11g , etc. Créez plusieurs scripts et codez-les en dur, ou ajoutez un autre paramètre à setup.py pour le sélectionner dynamiquement.

Bien sûr, une fois que vous avez cela, vous avez besoin d'un mécanisme pour charger le bon module au moment de l'exécution. Pour ce faire, vous devrez créer votre propre cx_Oracle module qui a un __init__.py fichier qui ressemble à ceci :

try:
  from cx_Oracle9g import *
except ImportError:
  try:
    from cx_Oracle10g import *
  except ImportError:
    try:
      from cx_Oracle11g import *

Tout ce que vous avez à faire est d'expédier votre cx_Oracle personnalisé module plus le bon cx_OracleXg module avec votre application.

Alternativement, vous pouvez avoir votre cx_Oracle personnalisé module vérifie dynamiquement chaque bibliothèque client Oracle disponible (9g, 10g, 11g, etc.) puis n'importe que le bon cx_OracleXg correspondant module. Dans ce cas, vous n'avez qu'à expédier un seul binaire, contenant votre cx_Oracle personnalisé module plus tous les cx_OracleXg modules.