X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=daklib%2Fdbconn.py;h=45e000d395fbf104a8331004e7a95451114ba1f6;hb=ce63c9c5366b01f6274c1a0c6c53623c4114c32b;hp=72b072c1f83bd9f07627bbf87f6f104d6c66b5bb;hpb=555e81024228707dc9b3698bb6b324d4ffabbe73;p=dak.git diff --git a/daklib/dbconn.py b/daklib/dbconn.py index 72b072c1..45e000d3 100755 --- a/daklib/dbconn.py +++ b/daklib/dbconn.py @@ -40,8 +40,10 @@ import traceback from inspect import getargspec +import sqlalchemy from sqlalchemy import create_engine, Table, MetaData from sqlalchemy.orm import sessionmaker, mapper, relation +from sqlalchemy import types as sqltypes # Don't remove this, we re-export the exceptions to scripts which import us from sqlalchemy.exc import * @@ -55,6 +57,22 @@ from textutils import fix_maintainer ################################################################################ +# Patch in support for the debversion field type so that it works during +# reflection + +class DebVersion(sqltypes.Text): + def get_col_spec(self): + return "DEBVERSION" + +sa_major_version = sqlalchemy.__version__[0:3] +if sa_major_version == "0.5": + from sqlalchemy.databases import postgres + postgres.ischema_names['debversion'] = DebVersion +else: + raise Exception("dak isn't ported to SQLA versions != 0.5 yet. See daklib/dbconn.py") + +################################################################################ + __all__ = ['IntegrityError', 'SQLAlchemyError'] ################################################################################