fix: alter kpi_report index and tenant_name

This commit is contained in:
2024-06-25 14:19:31 +08:00
parent e763c50aeb
commit 1127d81c13
3 changed files with 27 additions and 7 deletions

View File

@@ -1,17 +1,17 @@
/*
Navicat Premium Data Transfer
Source Server : root@192.168.2.166
Source Server : local_mariadb
Source Server Type : MariaDB
Source Server Version : 100616 (10.6.16-MariaDB-0ubuntu0.22.04.1)
Source Host : 192.168.2.166:33066
Source Schema : omc_db
Source Server Version : 100338 (10.3.38-MariaDB)
Source Host : localhost:33066
Source Schema : tenants_db
Target Server Type : MariaDB
Target Server Version : 100616 (10.6.16-MariaDB-0ubuntu0.22.04.1)
Target Server Version : 100338 (10.3.38-MariaDB)
File Encoding : 65001
Date: 26/04/2024 17:20:10
Date: 25/06/2024 11:42:32
*/
SET NAMES utf8mb4;
@@ -33,6 +33,7 @@ CREATE TABLE `kpi_report` (
`granularity` tinyint(4) NULL DEFAULT 60 COMMENT 'Time granualarity: 5/10/.../60/300 (second)',
`kpi_values` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL,
`created_at` bigint(20) NULL DEFAULT NULL,
`tenant_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_timestamp`(`created_at`) USING BTREE,
INDEX `idx_uid_datetime`(`rm_uid`, `date`, `start_time`) USING BTREE

View File

@@ -37,4 +37,11 @@ CREATE TABLE IF NOT EXISTS `kpi_report` (
INDEX `idx_uid_datetime`(`rm_uid`, `date`, `start_time`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10660 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
ALTER TABLE `kpi_report`
ADD COLUMN IF NOT EXISTS `tenant_name` varchar(128) NULL AFTER `created_at`;
ALTER TABLE `kpi_report`
ADD INDEX IF NOT EXISTS `idx_timestamp`(`created_at`) USING BTREE,
ADD INDEX IF NOT EXISTS `idx_uid_datetime`(`rm_uid`, `date`, `start_time`) USING BTREE;
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -119,10 +119,22 @@ esac
ne_types=$(mysql -u${USER} -p${PASSWORD} -P ${PORT} --protocol tcp -D ${DBNAME} -se "SELECT DISTINCT LOWER(ne_type) FROM kpi_title")
for ne_type in ${ne_types}; do
TABLE_NAME="kpi_report_${ne_type}"
SQL="CREATE TABLE IF NOT EXISTS ${TABLE_NAME} AS SELECT * FROM kpi_report WHERE 1=0;ALTER TABLE ${TABLE_NAME} MODIFY COLUMN \`id\` int(11) NOT NULL AUTO_INCREMENT FIRST,ADD PRIMARY KEY IF NOT EXISTS (\`id\`);"
SQL="CREATE TABLE IF NOT EXISTS ${TABLE_NAME} LIKE `kpi_report`;"
echo -n "Create table: ${TABLE_NAME} ..."
mysql -u${USER} -p${PASSWORD} -P ${PORT} --protocol tcp -D ${DBNAME} -e "${SQL}"
if [ $? = 0 ]; then
echo "done"
fi
SQL="ALTER TABLE ${TABLE_NAME} ADD INDEX IF NOT EXISTS `idx_timestamp`(`created_at`) USING BTREE,ADD INDEX IF NOT EXISTS `idx_uid_datetime`(`rm_uid`, `date`, `start_time`) USING BTREE;"
echo -n "Create index of ${TABLE_NAME} ..."
mysql -u${USER} -p${PASSWORD} -P ${PORT} --protocol tcp -D ${DBNAME} -e "${SQL}"
if [ $? = 0 ]; then
echo "done"
fi
SQL="ALTER TABLE ${TABLE_NAME} ADD COLUMN IF NOT EXISTS `tenant_name` varchar(128) NULL AFTER `created_at`;"
echo -n "Alter table ${TABLE_NAME} ..."
mysql -u${USER} -p${PASSWORD} -P ${PORT} --protocol tcp -D ${DBNAME} -e "${SQL}"
if [ $? = 0 ]; then
echo "done"
fi
done