def getConfig(cls, databaseUrl, resourcesPath, localResourcesPath, writeCallback =None): """ Retrieves the Alembic configuration for the specified database URL stored within the resources and local resources path for the target application """ logger = Logger( databaseUrl.replace('://', '~').replace('/', '--').replace('.vdb', ''), useStorageBuffer=True) if writeCallback is not None: logger.addWriteCallback(writeCallback) migrationPath = PyGlassModelUtils.getMigrationPathFromDatabaseUrl( databaseUrl, resourcesPath=resourcesPath) config = alembicConfig.Config(os.path.join(migrationPath, 'alembic.ini'), stdout=logger) engineUrl = PyGlassModelUtils.getEngineUrl( databaseUrl=databaseUrl, localResourcesPath=localResourcesPath) # These options are overridden during loading to prevent issues of absolute path corruption # when running in different deployment modes and when installed on different computers config.set_main_option('url', engineUrl) config.set_section_option('alembic', 'script_location', migrationPath) config.set_section_option('alembic', 'sqlalchemy.url', engineUrl) config.set_section_option('alembic', 'url', migrationPath) return config
def getConfig(cls, databaseUrl, writeCallback =None): logger = Logger( databaseUrl.replace(u'://', u'~').replace(u'/', u'--').replace(u'.vdb', u''), useStorageBuffer=True ) if writeCallback is not None: logger.addWriteCallback(writeCallback) migrationPath = PyGlassModelUtils.getMigrationPathFromDatabaseUrl(databaseUrl) config = alembicConfig.Config(os.path.join(migrationPath, 'alembic.ini'), stdout=logger) config.set_main_option( 'script_location', migrationPath ) config.set_main_option( 'sqlalchemy.url', PyGlassModelUtils.getEngineUrl(databaseUrl) ) config.set_main_option( 'url', PyGlassModelUtils.getEngineUrl(databaseUrl) ) return config