def table_create(table_name, columns, keys=None): allcolumns = columns if keys is None else keys + columns sql = 'create table %s (%s' % (table_name, ', '.join(allcolumns)) if keys is not None: sql += (', primary key (%s)' % (', '.join(keys), )) sql += ')' c.execute(sql) conn.commit() print("connecting to %s" % (sys.argv[1], )) conn = sqlite3.connect(sys.argv[1]) c = conn.cursor() tables = [ JBoxUserV2, JBoxDynConfig, JBoxSessionProps, JBoxInstanceProps, JBoxAPISpec, JBoxUserProfile ] for plugin in JBPluginDB.jbox_get_plugins(JBPluginDB.JBP_TABLE_RDBMS): tables.append(plugin) for cls in tables: print("Creating %s..." % (cls.NAME, )) if table_exists(cls.NAME): print("\texists already!") else: table_create(cls.NAME, cls.ATTRIBUTES, cls.KEYS) print("\tcreated.")
c.fetchall() return c.description is not None except: return False def table_create(table_name, columns, keys=None): allcolumns = columns if keys is None else keys + columns sql = 'create table %s (%s' % (table_name, ', '.join(allcolumns)) if keys is not None: sql += (', primary key (%s)' % (', '.join(keys),)) sql += ')' c.execute(sql) conn.commit() print("connecting to %s" % (sys.argv[1],)) conn = sqlite3.connect(sys.argv[1]) c = conn.cursor() tables = [JBoxUserV2, JBoxDynConfig, JBoxSessionProps, JBoxAPISpec] for plugin in JBPluginDB.jbox_get_plugins(JBPluginDB.JBP_TABLE_RDBMS): tables.append(plugin) for cls in tables: print("Creating %s..." % (cls.NAME,)) if table_exists(cls.NAME): print("\texists already!") else: table_create(cls.NAME, cls.ATTRIBUTES, cls.KEYS) print("\tcreated.")
unix_socket = db['unix_socket'] db = db['db'] return MySQLdb.connect(user=user, passwd=passwd, db=db, unix_socket=unix_socket) conn = get_connection() c = conn.cursor() tables = [ JBoxUserV2, JBoxDynConfig, JBoxSessionProps, JBoxInstanceProps, JBoxAPISpec, JBoxUserProfile ] for plugin in JBPluginDB.jbox_get_plugins(JBPluginDB.JBP_TABLE_DYNAMODB): tables.append(plugin) for cls in tables: print("Creating %s..." % (cls.NAME, )) if table_exists(cls.NAME): print("\texists already!") else: table_create(cls.NAME, cls.ATTRIBUTES, cls.TYPES, cls.KEYS, cls.KEYS_TYPES) print("\tcreated.") for cls in tables: print("Creating indexes for %s..." % (cls.NAME)) indexes_create(cls.NAME, cls.SQL_INDEXES)
from juliabox.db import JBoxUserV2, JBoxDynConfig, JBoxSessionProps, JBoxInstanceProps, JBPluginDB, JBoxAPISpec, JBoxUserProfile # import any plugins that contribute tables import juliabox.plugins.course_homework import juliabox.plugins.usage_accounting import juliabox.plugins.vol_ebs def table_exists(name): t = Table(name) try: t.describe() return True except: return False tables = [JBoxUserV2, JBoxDynConfig, JBoxSessionProps, JBoxInstanceProps, JBoxAPISpec, JBoxUserProfile] for plugin in JBPluginDB.jbox_get_plugins(JBPluginDB.JBP_TABLE_DYNAMODB): tables.append(plugin) for cls in tables: print("Creating %s..." % (cls.NAME,)) if table_exists(cls.NAME): print("\texists already!") else: Table.create(cls.NAME, schema=cls.SCHEMA, indexes=cls.INDEXES, global_indexes=cls.GLOBAL_INDEXES, throughput={ 'read': 1, 'write': 1 }) print("\tcreated.")