Esempio n. 1
0
def config_db(app):
    # 让sqlite数据库文件位置相对于应用程序根目录
    params = app.config["DATABASE_PARAMS"]
    if "filename" in params and not os.path.isabs(params["filename"]):
        params["filename"] = os.path.join(app.root_path, params["filename"])
    db_dir = os.path.dirname(params["filename"])
    if not os.path.exists(db_dir):
        os.makedirs(db_dir)

    # 测试时会多次执行db.bind
    try:
        db.bind(app.config["DATABASE_NAME"], create_db=True, **params)
        db.generate_mapping(create_tables=True)
    except TypeError as ex:
        app.logger.warn("can't bind db: " + str(ex))
    # 多次执行 create_tables 不会报错
    db.create_tables()
Esempio n. 2
0
def config_db(app):
    db.bind(app.config["DATABASE_NAME"],
            app.config["DATABASE_PATH"],
            create_db=True)
    db.generate_mapping(create_tables=True)