def __init__(self, memory=False, filename=None, drop=False): """Setup a sqlalchemy connection to spatialite with the proper metadata. :param memory: if True the catalogue will use an in-memory database, otherwise a file-based database is used :param filename: the filename of the database used. Unused if `memory` is True :param drop: if True, drop the catalogue and rebuild the schema """ if memory: self._engine = sqlalchemy.create_engine('sqlite://', module=sqlite) else: filename = filename or self.DEFAULT_FILENAME self._engine = sqlalchemy.create_engine( 'sqlite:///%s' % filename, module=sqlite, poolclass=sqlalchemy.pool.QueuePool, pool_size=1, ) sqlevent.listen(self._engine, "first_connect", _connect) self.session = orm.sessionmaker(bind=self._engine)() self._metadata = sqlalchemy.MetaData(self._engine) self._create_schema() if drop: self._metadata.drop_all() self._metadata.create_all(self._engine)
def __init__(self, memory=False, filename=None): """Setup a sqlalchemy connection to spatialite with the proper metadata. :param memory: if True the catalogue will use an in-memory database, otherwise a file-based database is used :param filename: the filename of the database used. Unused if `memory` is True """ to_be_initialized = False if memory: self._engine = sqlalchemy.create_engine('sqlite://', module=sqlite) to_be_initialized = True else: filename = filename or self.DEFAULT_FILENAME if not os.path.exists(filename): to_be_initialized = True self._engine = sqlalchemy.create_engine( 'sqlite:///%s' % filename, module=sqlite, poolclass=sqlalchemy.pool.QueuePool, pool_size=1, ) sqlevent.listen(self._engine, "first_connect", _connect) self.session = orm.sessionmaker(bind=self._engine)() self._metadata = sqlalchemy.MetaData(self._engine) self._create_schema() if to_be_initialized: self.recreate()
def __init__(self, memory=False, filename=None, drop=False): """Setup a sqlalchemy connection to spatialite with the proper metadata. :param memory: if True the catalogue will use an in-memory database, otherwise a file-based database is used :param filename: the filename of the database used. Unused if `memory` is True :param drop: drop the content of the database """ self.to_be_initialized = drop if memory: # set echo=True in debugging self._engine = sqlalchemy.create_engine('sqlite://', module=sqlite) self.to_be_initialized = True else: filename = filename or self.DEFAULT_FILENAME if not os.path.exists(filename): self.to_be_initialized = True self._engine = sqlalchemy.create_engine( 'sqlite:///%s' % filename, module=sqlite, poolclass=sqlalchemy.pool.QueuePool, pool_size=1) self.session = None self._metadata = None sqlevent.listen(self._engine, "first_connect", self._connect) self._engine.connect() orm.clear_mappers() self._create_schema_magnitudemeasure() if self.to_be_initialized: self.recreate()
def __declare_last__(cls): event.listen(cls, 'before_delete', cls.before_delete)
def __declare_last__(cls): event.listen(cls, 'before_update', cls.before_update, raw=True)
def __declare_last__(cls): event.listen(cls, 'before_update', cls.on_update)