Source code for phildb.create

import argparse
import os

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
Session = sessionmaker()

from phildb import constants
from phildb import dbstructures
from phildb.exceptions import AlreadyExistsError

[docs]def create(tsdb_path): if not os.path.exists(tsdb_path): os.makedirs(tsdb_path) os.makedirs(os.path.join(tsdb_path, 'data')) elif not os.listdir(tsdb_path): os.makedirs(os.path.join(tsdb_path, 'data')) else: raise AlreadyExistsError('PhilDB database already exists at: {0}'.format(tsdb_path)) engine = create_engine('sqlite:///{0}{1}{2}'.format(tsdb_path, os.path.sep, constants.METADATA_DB)) dbstructures.Base.metadata.create_all(engine) Session.configure(bind=engine) session = Session() version = dbstructures.SchemaVersion(version=constants.DB_VERSION) session.add(version) session.commit()
[docs]def main(): parser = argparse.ArgumentParser(description='Create PhilDB database.') parser.add_argument('dbname', help="PhilDB database to create") args = parser.parse_args() create(args.dbname)
if __name__ == "__main__": main()