Beispiel #1
0
def createsql(app, out):
    metadata = Base.metadata
    db = database.get_database(app)
    metadata.bind = db
    tables = metadata.sorted_tables

    for table in tables:
        sql = CreateTable(table).compile(db.engine).string
        sql = sql.strip() + ';\n'
        indexes = table.indexes
        for index in sorted(indexes, key=lambda i: i.name):
            sql += CreateIndex(index).compile(db.engine).string + ';\n'

        sql += '\n'
        out.write(sql)
Beispiel #2
0
def create_sql(tables=None, out=sys.stdout):
    u'''
    :param tables [str]:
    :param out: file obj
    '''
    metadata = BaseModel.metadata
    metadata.bind = db.session(BaseModel.default_session_name).get_bind()
    all_tables = metadata.sorted_tables
    if not tables:
        target_tables = all_tables
    else:
        target_tables = [t for t in all_tables if t.name in tables]
        if len(tables) != len(target_tables):
            raise ValueError('invalid tables. {}'.format(tables))

    for table in sorted(target_tables, key=lambda t: t.name):
        sql = CreateTable(table).compile(db.engine).string
        sql = sql.strip() + ';\n'
        indexes = table.indexes
        for index in sorted(indexes, key=lambda i: i.name):
            sql += CreateIndex(index).compile(db.engine).string + ';\n'
        sql += '\n'
        out.write(sql)