Esempio n. 1
0
import argparse
parser = argparse.ArgumentParser(description='generate schema graphs')
parser.add_argument('--outputdir', '-o', dest='dir', default='.',
                    help='directory to put generated files')
parser.add_argument('--prefix', '-p', dest='prefix', default='aqdb_schema',
                    help='basename of files to generate')
opts = parser.parse_args()

if not os.path.exists(opts.dir):
    os.makedirs(opts.dir)

from aquilon.config import Config, lookup_file_path
config = Config(configfile=lookup_file_path('aqd.conf.mem'))

from aquilon.aqdb.db_factory import DbFactory
from aquilon.aqdb.model import Base
db = DbFactory()
Base.metadata.bind = db.engine
Base.metadata.create_all()

import ms.modulecmd
ms.modulecmd.load("fsf/graphviz/2.28.0")

from aquilon.aqdb.utils import schema2dot


dot = schema2dot.create_schema_graph(metadata=db.meta)
dot.write(os.path.join(opts.dir, "%s.dot" % opts.prefix))
dot.write_png(os.path.join(opts.dir, "%s.png" % opts.prefix))
Esempio n. 2
0
def write_schema_group_png(group):
    tables = list((db.meta.tables[cls.__tablename__]
                for cls in model_group[group]['classes']))
    pngfile = os.path.join(opts.dir, "%s.%s.png" % (opts.prefix, group))
    schema2dot.create_schema_graph(tables=tables).write_png(pngfile)