def from_cmdline_args(args, model_meta, migration_root, interactive=False, env=None): """ Normally only this method is called form outside of this module in order to instance the proper server implementation. Parameters: args: the command line arguments from CodeChecker.py, but as a dictionary (if argparse.Namespace, use vars(args)). model_meta: the meta identifier of the database model to use migration_root: path to the database migration scripts interactive: whether or not the database connection can be interactive on the server's shell. env: a run environment dictionary. """ if not host_check.check_sql_driver(args['postgresql']): LOG.error("The selected SQL driver is not available!") raise IOError("The SQL driver to be used is not available!") if args['postgresql']: LOG.debug("Using PostgreSQL:") return PostgreSQLServer( model_meta, migration_root, args['dbaddress'], args['dbport'], args['dbusername'], args['dbname'], password=args['dbpassword'] if 'dbpassword' in args else None, interactive=interactive, run_env=env) else: LOG.debug("Using SQLite:") data_file = os.path.abspath(args['sqlite']) LOG.debug("Database at %s", data_file) return SQLiteDatabase(data_file, model_meta, migration_root, run_env=env)
def from_cmdline_args(args, model_meta, migration_root, interactive=False, env=None): """ Normally only this method is called form outside of this module in order to instance the proper server implementation. Parameters: args: the command line arguments from CodeChecker.py, but as a dictionary (if argparse.Namespace, use vars(args)). model_meta: the meta identifier of the database model to use migration_root: path to the database migration scripts interactive: whether or not the database connection can be interactive on the server's shell. env: a run environment dictionary. """ if not host_check.check_sql_driver(args['postgresql']): LOG.error("The selected SQL driver is not available!") raise IOError("The SQL driver to be used is not available!") if args['postgresql']: LOG.debug("Using PostgreSQL:") return PostgreSQLServer(model_meta, migration_root, args['dbaddress'], args['dbport'], args['dbusername'], args['dbname'], password=args['dbpassword'] if 'dbpassword' in args else None, interactive=interactive, run_env=env) else: LOG.debug("Using SQLite:") data_file = os.path.abspath(args['sqlite']) LOG.debug("Database at %s", data_file) return SQLiteDatabase(data_file, model_meta, migration_root, run_env=env)