def initialize_connection(preload_database_mode): global __engine_url, __engine_params if preload_database_mode == PreloadDatabaseMode.EMPTY_FILE: # Delete preload database, so an empty one can be created in its place database_util.delete_preload_database() # Set engine arguments __engine_url = config.PRELOAD_DATABASE_SQLITE_FILE_URI __engine_params = {} elif preload_database_mode == PreloadDatabaseMode.POPULATED_MEMORY: # Build an in-memory SQLite Database from the SQL script connection = sqlite3.connect(":memory:") connection.executescript(database_util.get_preload_database_script_as_string()) connection.commit() # Set engine arguments __engine_url = "sqlite://" __engine_params = { 'poolclass':StaticPool, 'creator':lambda:connection } elif preload_database_mode == PreloadDatabaseMode.POPULATED_FILE: # Delete preload database, and use the script to rebuild it database_util.generate_preload_database_from_script() # Set engine arguments __engine_url = config.PRELOAD_DATABASE_SQLITE_FILE_URI __engine_params = {} else: raise ValueError('Invalid PreloadDatabaseMode value.')
def initialize_connection(preload_database_mode): global __engine_url, __engine_params if preload_database_mode == PreloadDatabaseMode.EMPTY_FILE: # Delete preload database, so an empty one can be created in its place database_util.delete_preload_database() # Set engine arguments __engine_url = config.PRELOAD_DATABASE_SQLITE_FILE_URI __engine_params = {} elif preload_database_mode == PreloadDatabaseMode.POPULATED_MEMORY: # Build an in-memory SQLite Database from the SQL script connection = sqlite3.connect(":memory:") connection.executescript(database_util.get_preload_database_script_as_string()) connection.commit() # Set engine arguments __engine_url = "sqlite://" __engine_params = {'poolclass': StaticPool, 'creator': lambda: connection} elif preload_database_mode == PreloadDatabaseMode.POPULATED_FILE: # Delete preload database, and use the script to rebuild it database_util.generate_preload_database_from_script() # Set engine arguments __engine_url = config.PRELOAD_DATABASE_SQLITE_FILE_URI __engine_params = {} else: raise ValueError('Invalid PreloadDatabaseMode value.')
database.Session.commit() def process_bin_sizes(sheet): print 'Processing bin sizes' for row in sheet: if 'stream' in row: stream = Stream().query.filter(Stream.name == row.get('stream')).first() if stream is None: print 'Can not find stream %s in preload' % row.get('stream') else: bin_size_text = row.get('binsize') bin_size = config.DEFAULT_BIN_SIZE_MINUTES if bin_size_text is not None: bin_size = int(bin_size_text) else: print 'Using default bin size for stream %s with blank row in sheet' % stream.name stream.binsize_minutes = bin_size database.Session.commit() def create_db(): process_parameter_funcs(sheet_generator('ParameterFunctions')) process_parameters(sheet_generator('ParameterDefs')) process_streams(sheet_generator('ParameterDictionary')) process_bin_sizes(sheet_generator('BinSizes')) if __name__ == '__main__': create_db() database_util.generate_script_from_preload_database() database_util.delete_preload_database()