Skip to content
Snippets Groups Projects
synapse_port_db 33.2 KiB
Newer Older
  • Learn to ignore specific revisions
  •         logging_config["filename"] = "port-synapse.log"
    
        logging.basicConfig(**logging_config)
    
    
        sqlite_config = {
            "name": "sqlite3",
            "args": {
                "database": args.sqlite_database,
                "cp_min": 1,
                "cp_max": 1,
                "check_same_thread": False,
            },
        }
    
    
        hs_config = yaml.safe_load(args.postgres_config)
    
        if "database" not in hs_config:
            sys.stderr.write("The configuration file must have a 'database' section.\n")
            sys.exit(4)
    
        postgres_config = hs_config["database"]
    
        if "name" not in postgres_config:
    
            sys.stderr.write("Malformed database config: no 'name'\n")
    
            sys.exit(2)
        if postgres_config["name"] != "psycopg2":
    
            sys.stderr.write("Database must use the 'psycopg2' connector.\n")
    
        config = HomeServerConfig()
        config.parse_config_dict(hs_config, "", "")
    
    
        def start(stdscr=None):
            if stdscr:
                progress = CursesProgress(stdscr)
            else:
                progress = TerminalProgress()
    
            porter = Porter(
                sqlite_config=sqlite_config,
                progress=progress,
                batch_size=args.batch_size,
    
            )
    
            reactor.callWhenRunning(porter.run)
    
            reactor.run()
    
        if args.curses:
            curses.wrapper(start)
        else:
            start()
    
        if end_error_exec_info:
            exc_type, exc_value, exc_traceback = end_error_exec_info
            traceback.print_exception(exc_type, exc_value, exc_traceback)