Beispiel #1
0
            print("=============================================")
            result = module.update(job_ids=args.uids,
                                   retry_errors=args.retry,
                                   limit=args.limit,
                                   parallel=not args.local,
                                   workers=args.workers,
                                   raise_exceptions=args.raise_exc)
            report.append((module, result))

        if args.vacuum:
            print("Starting vacuum..")
            db.vacuum()
            print("   ..finished vacuum.")

        print("\n================== Error Report ===========================")
        for module, result in report:
            print("------ %s : %d errors -------" %
                  (module.name, result['n_errors']))
            for job, err in result['errors'].items():
                print("    %s : %s" % (job, err))

        print("\n================== Update Report ===========================")
        for module, result in report:
            print(
                "{name:20s}  dropped: {n_dropped:6d}  updated: {n_updated:6d} ({n_retry:6d} retry)  errors: {n_errors:6d}"
                .format(name=module.name, **result))

    if args.bake:
        print("\n================== Bake Sqlite ===========================")
        db.bake_sqlite(config.synphys_db_sqlite)
tables = None if args.tables is None else args.tables.split(',')
if args.bake is not None:
    if os.path.exists(args.bake):
        if args.overwrite:
            os.remove(args.bake)
        elif not args.update:
            print("sqlite database file %s already exists" % args.bake)
            sys.exit(0)

    skip_cols = {}
    for colname in args.skip_columns.split(','):
        table, col = colname.split('.')
        skip_cols.setdefault(table, []).append(col)
    db.bake_sqlite(args.bake,
                   tables=tables,
                   skip_tables=args.skip_tables.split(','),
                   skip_columns=skip_cols)

if args.clone is not None:
    db.clone_database(args.clone,
                      tables=tables,
                      skip_tables=args.skip_tables.split(','))

if args.drop is not None:
    drop_db = db.get_database(args.drop)
    ans = six.moves.input(
        "Seriously? I'm gonna dump the entire \"%s\" database? (y/n) " %
        drop_db)
    if ans == 'y':
        print("  Ok, don't look..")
        drop_db.drop_database()
Beispiel #3
0
    'recording',
    'patch_clamp_recording',
    'multi_patch_probe',
    'test_pulse',
    'sync_rec',
]

skip_columns = {}
skip_columns['full'] = {}
skip_columns['medium'] = skip_columns['full'].copy()
skip_columns['medium'].update({
    'pulse_response': ['data'],
    'baseline': ['data'],
    'stim_pulse': ['data'],
})
skip_columns['small'] = skip_columns['medium'].copy()

versions = sys.argv[1:]

if len(versions) == 0:
    versions = list(db_files.keys())

for version in versions:
    filename = db_files[version]
    print("========== Cloning %s DB %s =============" % (version, filename))
    if os.path.exists(filename):
        os.remove(filename)
    db.bake_sqlite(filename,
                   skip_tables=skip_tables[version],
                   skip_columns=skip_columns[version])