Esempio n. 1
0
async def update_schema_v_1_2_5_0() -> bool:
    column_definitions = [('dailynotifyid', 'TEXT', False, False),
                          ('dailynotifytype', 'TEXT', False, False)]

    schema_version = await get_schema_version()
    if schema_version:
        compare_1250 = util.compare_versions(schema_version, '1.2.5.0')
        compare_1240 = util.compare_versions(schema_version, '1.2.4.0')
        if compare_1250 <= 0:
            return True
        elif compare_1240 > 0:
            return False

    print(
        f'[update_schema_v_1_2_5_0] Updating database schema from v1.2.4.0 to v1.2.5.0'
    )

    query_lines = []
    for (column_name, column_type, column_is_primary,
         column_not_null) in column_definitions:
        column_definition = util.db_get_column_definition(
            column_name,
            column_type,
            is_primary=column_is_primary,
            not_null=column_not_null)
        query_lines.append(
            f'ALTER TABLE serversettings ADD COLUMN IF NOT EXISTS {column_definition};'
        )

    query = '\n'.join(query_lines)
    success = await try_execute(query)
    if success:
        success = await try_set_schema_version('1.2.5.0')
    return success
Esempio n. 2
0
def db_update_schema_v_1_2_4_0():
    column_definitions = [('dailydeleteonchange', 'BOOLEAN', False, False,
                           None)]

    schema_version = db_get_schema_version()
    if schema_version:
        compare_1240 = util.compare_versions(schema_version, '1.2.4.0')
        compare_1220 = util.compare_versions(schema_version, '1.2.2.0')
        if compare_1240 <= 0:
            return True
        elif compare_1220 > 0:
            return False

    query_lines = []
    for (column_name, column_type, column_is_primary, column_not_null,
         column_default) in column_definitions:
        column_definition = util.db_get_column_definition(
            column_name,
            column_type,
            is_primary=column_is_primary,
            not_null=column_not_null,
            default=column_default)
        query_lines.append(
            f'ALTER TABLE serversettings ADD COLUMN IF NOT EXISTS {column_definition}'
        )

    query = '\n'.join(query_lines)
    success = db_try_execute(query)
    if success:
        utc_now = util.get_utcnow()
        daily_info = daily.get_daily_info()
        success = daily.db_set_daily_info(daily_info, utc_now)
        if success:
            success = db_try_set_schema_version('1.2.4.0')
    return success
Esempio n. 3
0
def db_update_schema_v_1_2_6_0():
    column_definitions_serversettings = [
        ('dailylatestmessagecreatedate', 'TIMESTAMPTZ', False, False),
        ('dailylatestmessagemodifydate', 'TIMESTAMPTZ', False, False)
    ]

    schema_version = db_get_schema_version()
    if schema_version:
        compare_1260 = util.compare_versions(schema_version, '1.2.6.0')
        compare_1250 = util.compare_versions(schema_version, '1.2.5.0')
        if compare_1260 <= 0:
            return True
        elif compare_1250 > 0:
            return False

    query_lines = []
    for (column_name, column_type, column_is_primary,
         column_not_null) in column_definitions_serversettings:
        column_definition = util.db_get_column_definition(
            column_name,
            column_type,
            is_primary=column_is_primary,
            not_null=column_not_null)
        query_lines.append(
            f'ALTER TABLE serversettings ADD COLUMN IF NOT EXISTS {column_definition};'
        )

    query = '\n'.join(query_lines)
    success = db_try_execute(query)
    if success:
        success = db_try_set_schema_version('1.2.6.0')
    return success
Esempio n. 4
0
def get_column_list(column_definitions: list) -> str:
    __log_db_function_enter('get_column_list',
                            column_definitions=column_definitions)

    result = []
    for column_definition in column_definitions:
        result.append(util.db_get_column_definition(*column_definition))
    return ', '.join(result)
Esempio n. 5
0
def db_get_column_list(column_definitions: list) -> str:
    result = []
    for column_definition in column_definitions:
        result.append(util.db_get_column_definition(*column_definition))
    return ', '.join(result)