cmdline.py 2.59 KB
Newer Older
Weizhi Cui's avatar
Weizhi Cui committed
1 2 3 4 5 6 7 8 9
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
# @Version     : Python 3.11.4
# @Software    : Sublime Text 4
# @Author      : StudentCWZ
# @Email       : StudentCWZ@outlook.com
# @Date        : 2023/10/29 11:21
# @File        : cmdline.py
崔为之's avatar
崔为之 committed
10
# @Description : Defines the initial command line interface for the Flask application.
Weizhi Cui's avatar
Weizhi Cui committed
11 12
"""

崔为之's avatar
崔为之 committed
13
# Import third-party modules
Weizhi Cui's avatar
Weizhi Cui committed
14 15
import click
from flask.cli import with_appcontext
崔为之's avatar
崔为之 committed
16
from sqlalchemy import text
Weizhi Cui's avatar
Weizhi Cui committed
17 18 19 20 21


@click.command("init")
@with_appcontext
def init():
崔为之's avatar
崔为之 committed
22 23 24 25 26
    """
    Initialize the application by creating a new log entry.

    This command is to be used with the Flask application context.
    """
Weizhi Cui's avatar
Weizhi Cui committed
27 28
    from application.extensions.init_sqlalchemy import db

崔为之's avatar
崔为之 committed
29
    # Uncomment below lines to create a new log entry.
崔为之's avatar
崔为之 committed
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
    click.echo('create tables')
    with db.app.app_context():
        cfg = db.app.config.Database
        db.session.execute(text(f"""
        CREATE TABLE IF NOT EXISTS {cfg.TableName} (
            id SERIAL NOT NULL,
            date_time TIMESTAMP WITH TIME ZONE NOT NULL,
            uuid varchar(100) DEFAULT NULL,
            mid varchar(50) DEFAULT NULL,
            mid_type varchar(50) DEFAULT NULL,
            mac_wifi varchar(50) DEFAULT NULL,
            mac_voice varchar(50) DEFAULT NULL,
            code smallint DEFAULT NULL,
            query varchar(255) DEFAULT NULL,
            terminal_domain varchar(50) DEFAULT NULL,
            terminal_intent varchar(50) DEFAULT NULL,
            distribution_gree_domain varchar(50) DEFAULT NULL,
            distribution_gree_intent varchar(50) DEFAULT NULL,
            response_text text,
            emotion_class varchar(50) DEFAULT NULL,
            skill_id varchar(100) DEFAULT NULL,
            voice_portal smallint NOT NULL,
            service_nlu varchar(50) DEFAULT NULL,
            service_type smallint NOT NULL,
            slots text,
            yzs_request_id varchar(50) DEFAULT NULL,
            yzs_remote_ip varchar(15) DEFAULT NULL,
            yzs_app_key varchar(50) DEFAULT NULL,
            yzs_ud_id varchar(50) DEFAULT NULL,
            yzs_user_id varchar(50) DEFAULT NULL,
            yzs_intent text,
            yzs_general text,
            yzs_nlu_time varchar(20) DEFAULT NULL,
            get_body_time varchar(20) DEFAULT NULL,
            gree_nlu_time varchar(20) DEFAULT NULL,
            get_homeid_time varchar(20) DEFAULT NULL,
            tencent_nlu_time varchar(20) DEFAULT NULL,
            cost_time varchar(20) DEFAULT NULL,
            PRIMARY KEY (id, date_time)
        ) PARTITION BY RANGE (date_time);
        """))
        db.session.commit()
    click.echo('created tables')