mirror of
https://github.com/dromara/hertzbeat.git
synced 2026-09-17 09:40:58 +00:00
[improve] upgrade script merge (#3987)
This commit is contained in:
@@ -72,7 +72,7 @@ void migrateHistoryTable(java.sql.Connection conn) throws java.sql.SQLException
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getColumns(null, null, "HZB_HISTORY", "METRIC_LABELS")) {
|
||||
if (rs.next()) metricLabelsExists = true;
|
||||
}
|
||||
|
||||
|
||||
if (monitorIdExists) {
|
||||
try (java.sql.Statement stmt = conn.createStatement()) {
|
||||
if (!metricLabelsExists) {
|
||||
@@ -92,3 +92,518 @@ void migrateHistoryTable(java.sql.Connection conn) throws java.sql.SQLException
|
||||
$$;
|
||||
CALL MIGRATE_HISTORY_TABLE();
|
||||
DROP ALIAS MIGRATE_HISTORY_TABLE;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_alert_define_monitor_bind table
|
||||
-- ========================================
|
||||
CREATE ALIAS UPDATE_ALERT_DEFINE_MONITOR_BIND_INDEXES AS $$
|
||||
void updateAlertDefineMonitorBindIndexes(java.sql.Connection conn) throws java.sql.SQLException {
|
||||
boolean tableExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getTables(null, null, "HZB_ALERT_DEFINE_MONITOR_BIND", null)) {
|
||||
if (rs.next()) tableExists = true;
|
||||
}
|
||||
|
||||
if (tableExists) {
|
||||
try (java.sql.Statement stmt = conn.createStatement()) {
|
||||
// Drop old index if exists
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_ALERT_DEFINE_MONITOR_BIND", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("INDEX_ALERT_DEFINE_MONITOR".equalsIgnoreCase(indexName)) {
|
||||
stmt.execute("DROP INDEX INDEX_ALERT_DEFINE_MONITOR");
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Index may not exist, continue
|
||||
}
|
||||
|
||||
// Create new indexes if not exist
|
||||
boolean alertDefineIdIndexExists = false;
|
||||
boolean monitorIdIndexExists = false;
|
||||
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_ALERT_DEFINE_MONITOR_BIND", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("IDX_ALERT_DEFINE_ID".equalsIgnoreCase(indexName)) {
|
||||
alertDefineIdIndexExists = true;
|
||||
}
|
||||
if ("IDX_MONITOR_ID".equalsIgnoreCase(indexName)) {
|
||||
monitorIdIndexExists = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!alertDefineIdIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_ALERT_DEFINE_ID ON HZB_ALERT_DEFINE_MONITOR_BIND(ALERT_DEFINE_ID)");
|
||||
}
|
||||
|
||||
if (!monitorIdIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_MONITOR_ID ON HZB_ALERT_DEFINE_MONITOR_BIND(MONITOR_ID)");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$$;
|
||||
CALL UPDATE_ALERT_DEFINE_MONITOR_BIND_INDEXES();
|
||||
DROP ALIAS UPDATE_ALERT_DEFINE_MONITOR_BIND_INDEXES;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_collector_monitor_bind table
|
||||
-- ========================================
|
||||
CREATE ALIAS UPDATE_COLLECTOR_MONITOR_BIND_INDEXES AS $$
|
||||
void updateCollectorMonitorBindIndexes(java.sql.Connection conn) throws java.sql.SQLException {
|
||||
boolean tableExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getTables(null, null, "HZB_COLLECTOR_MONITOR_BIND", null)) {
|
||||
if (rs.next()) tableExists = true;
|
||||
}
|
||||
|
||||
if (tableExists) {
|
||||
try (java.sql.Statement stmt = conn.createStatement()) {
|
||||
// Drop old index if exists
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_COLLECTOR_MONITOR_BIND", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("INDEX_COLLECTOR_MONITOR".equalsIgnoreCase(indexName)) {
|
||||
stmt.execute("DROP INDEX INDEX_COLLECTOR_MONITOR");
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Index may not exist, continue
|
||||
}
|
||||
|
||||
// Create new indexes if not exist
|
||||
boolean collectorIndexExists = false;
|
||||
boolean monitorIdIndexExists = false;
|
||||
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_COLLECTOR_MONITOR_BIND", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("IDX_COLLECTOR_MONITOR_COLLECTOR".equalsIgnoreCase(indexName)) {
|
||||
collectorIndexExists = true;
|
||||
}
|
||||
if ("IDX_COLLECTOR_MONITOR_MONITOR_ID".equalsIgnoreCase(indexName)) {
|
||||
monitorIdIndexExists = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!collectorIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_COLLECTOR_MONITOR_COLLECTOR ON HZB_COLLECTOR_MONITOR_BIND(COLLECTOR)");
|
||||
}
|
||||
|
||||
if (!monitorIdIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_COLLECTOR_MONITOR_MONITOR_ID ON HZB_COLLECTOR_MONITOR_BIND(MONITOR_ID)");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$$;
|
||||
CALL UPDATE_COLLECTOR_MONITOR_BIND_INDEXES();
|
||||
DROP ALIAS UPDATE_COLLECTOR_MONITOR_BIND_INDEXES;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_monitor table
|
||||
-- ========================================
|
||||
CREATE ALIAS UPDATE_MONITOR_INDEXES AS $$
|
||||
void updateMonitorIndexes(java.sql.Connection conn) throws java.sql.SQLException {
|
||||
boolean tableExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getTables(null, null, "HZB_MONITOR", null)) {
|
||||
if (rs.next()) tableExists = true;
|
||||
}
|
||||
|
||||
if (tableExists) {
|
||||
try (java.sql.Statement stmt = conn.createStatement()) {
|
||||
// Drop old index if exists
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_MONITOR", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("MONITOR_QUERY_INDEX".equalsIgnoreCase(indexName)) {
|
||||
stmt.execute("DROP INDEX MONITOR_QUERY_INDEX");
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Index may not exist, continue
|
||||
}
|
||||
|
||||
// Create new indexes if not exist
|
||||
boolean appIndexExists = false;
|
||||
boolean instanceIndexExists = false;
|
||||
boolean nameIndexExists = false;
|
||||
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_MONITOR", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("IDX_HZB_MONITOR_APP".equalsIgnoreCase(indexName)) {
|
||||
appIndexExists = true;
|
||||
}
|
||||
if ("IDX_HZB_MONITOR_INSTANCE".equalsIgnoreCase(indexName)) {
|
||||
instanceIndexExists = true;
|
||||
}
|
||||
if ("IDX_HZB_MONITOR_NAME".equalsIgnoreCase(indexName)) {
|
||||
nameIndexExists = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!appIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_HZB_MONITOR_APP ON HZB_MONITOR(APP)");
|
||||
}
|
||||
|
||||
if (!instanceIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_HZB_MONITOR_INSTANCE ON HZB_MONITOR(INSTANCE)");
|
||||
}
|
||||
|
||||
if (!nameIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_HZB_MONITOR_NAME ON HZB_MONITOR(NAME)");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$$;
|
||||
CALL UPDATE_MONITOR_INDEXES();
|
||||
DROP ALIAS UPDATE_MONITOR_INDEXES;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_monitor_bind table
|
||||
-- ========================================
|
||||
CREATE ALIAS UPDATE_MONITOR_BIND_INDEXES AS $$
|
||||
void updateMonitorBindIndexes(java.sql.Connection conn) throws java.sql.SQLException {
|
||||
boolean tableExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getTables(null, null, "HZB_MONITOR_BIND", null)) {
|
||||
if (rs.next()) tableExists = true;
|
||||
}
|
||||
|
||||
if (tableExists) {
|
||||
try (java.sql.Statement stmt = conn.createStatement()) {
|
||||
// Create new index if not exist
|
||||
boolean bindIndexExists = false;
|
||||
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_MONITOR_BIND", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("INDEX_MONITOR_BIND".equalsIgnoreCase(indexName)) {
|
||||
bindIndexExists = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!bindIndexExists) {
|
||||
stmt.execute("CREATE INDEX INDEX_MONITOR_BIND ON HZB_MONITOR_BIND(BIZ_ID)");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$$;
|
||||
CALL UPDATE_MONITOR_BIND_INDEXES();
|
||||
DROP ALIAS UPDATE_MONITOR_BIND_INDEXES;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_status_page_incident_component_bind table
|
||||
-- Special handling: component_id might have auto-created index from FK
|
||||
-- ========================================
|
||||
CREATE ALIAS UPDATE_STATUS_PAGE_INCIDENT_COMPONENT_BIND_INDEXES AS $$
|
||||
void updateStatusPageIncidentComponentBindIndexes(java.sql.Connection conn) throws java.sql.SQLException {
|
||||
boolean tableExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getTables(null, null, "HZB_STATUS_PAGE_INCIDENT_COMPONENT_BIND", null)) {
|
||||
if (rs.next()) tableExists = true;
|
||||
}
|
||||
|
||||
if (tableExists) {
|
||||
try (java.sql.Statement stmt = conn.createStatement()) {
|
||||
// Check if component_id column already has any index
|
||||
boolean hasComponentIdIndex = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_STATUS_PAGE_INCIDENT_COMPONENT_BIND", false, false)) {
|
||||
while (rs.next()) {
|
||||
String columnName = rs.getString("COLUMN_NAME");
|
||||
if (columnName != null && "COMPONENT_ID".equalsIgnoreCase(columnName)) {
|
||||
hasComponentIdIndex = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Create index on component_id only if no index exists on this column
|
||||
if (!hasComponentIdIndex) {
|
||||
stmt.execute("CREATE INDEX IDX_INCIDENT_COMPONENT_COMPONENT_ID ON HZB_STATUS_PAGE_INCIDENT_COMPONENT_BIND(COMPONENT_ID)");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$$;
|
||||
CALL UPDATE_STATUS_PAGE_INCIDENT_COMPONENT_BIND_INDEXES();
|
||||
DROP ALIAS UPDATE_STATUS_PAGE_INCIDENT_COMPONENT_BIND_INDEXES;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_push_metrics table
|
||||
-- ========================================
|
||||
CREATE ALIAS UPDATE_PUSH_METRICS_INDEXES AS $$
|
||||
void updatePushMetricsIndexes(java.sql.Connection conn) throws java.sql.SQLException {
|
||||
boolean tableExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getTables(null, null, "HZB_PUSH_METRICS", null)) {
|
||||
if (rs.next()) tableExists = true;
|
||||
}
|
||||
|
||||
if (tableExists) {
|
||||
try (java.sql.Statement stmt = conn.createStatement()) {
|
||||
// Drop old index if exists
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_PUSH_METRICS", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("PUSH_QUERY_INDEX".equalsIgnoreCase(indexName)) {
|
||||
stmt.execute("DROP INDEX PUSH_QUERY_INDEX");
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Index may not exist, continue
|
||||
}
|
||||
|
||||
// Create new indexes if not exist
|
||||
boolean monitorIdIndexExists = false;
|
||||
boolean timeIndexExists = false;
|
||||
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_PUSH_METRICS", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("IDX_PUSH_METRICS_MONITOR_ID".equalsIgnoreCase(indexName)) {
|
||||
monitorIdIndexExists = true;
|
||||
}
|
||||
if ("IDX_PUSH_METRICS_TIME".equalsIgnoreCase(indexName)) {
|
||||
timeIndexExists = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!monitorIdIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_PUSH_METRICS_MONITOR_ID ON HZB_PUSH_METRICS(MONITOR_ID)");
|
||||
}
|
||||
|
||||
if (!timeIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_PUSH_METRICS_TIME ON HZB_PUSH_METRICS(TIME)");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$$;
|
||||
CALL UPDATE_PUSH_METRICS_INDEXES();
|
||||
DROP ALIAS UPDATE_PUSH_METRICS_INDEXES;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_history table
|
||||
-- ========================================
|
||||
CREATE ALIAS UPDATE_HISTORY_INDEXES AS $$
|
||||
void updateHistoryIndexes(java.sql.Connection conn) throws java.sql.SQLException {
|
||||
boolean tableExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getTables(null, null, "HZB_HISTORY", null)) {
|
||||
if (rs.next()) tableExists = true;
|
||||
}
|
||||
|
||||
if (tableExists) {
|
||||
try (java.sql.Statement stmt = conn.createStatement()) {
|
||||
// Drop old index if exists
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_HISTORY", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("HISTORY_QUERY_INDEX".equalsIgnoreCase(indexName)) {
|
||||
stmt.execute("DROP INDEX HISTORY_QUERY_INDEX");
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Index may not exist, continue
|
||||
}
|
||||
|
||||
// Create new indexes if not exist
|
||||
boolean instanceIndexExists = false;
|
||||
boolean appIndexExists = false;
|
||||
boolean metricsIndexExists = false;
|
||||
boolean metricIndexExists = false;
|
||||
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_HISTORY", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("IDX_HZB_HISTORY_INSTANCE".equalsIgnoreCase(indexName)) {
|
||||
instanceIndexExists = true;
|
||||
}
|
||||
if ("IDX_HZB_HISTORY_APP".equalsIgnoreCase(indexName)) {
|
||||
appIndexExists = true;
|
||||
}
|
||||
if ("IDX_HZB_HISTORY_METRICS".equalsIgnoreCase(indexName)) {
|
||||
metricsIndexExists = true;
|
||||
}
|
||||
if ("IDX_HZB_HISTORY_METRIC".equalsIgnoreCase(indexName)) {
|
||||
metricIndexExists = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!instanceIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_HZB_HISTORY_INSTANCE ON HZB_HISTORY(INSTANCE)");
|
||||
}
|
||||
|
||||
if (!appIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_HZB_HISTORY_APP ON HZB_HISTORY(APP)");
|
||||
}
|
||||
|
||||
if (!metricsIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_HZB_HISTORY_METRICS ON HZB_HISTORY(METRICS)");
|
||||
}
|
||||
|
||||
if (!metricIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_HZB_HISTORY_METRIC ON HZB_HISTORY(METRIC)");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$$;
|
||||
CALL UPDATE_HISTORY_INDEXES();
|
||||
DROP ALIAS UPDATE_HISTORY_INDEXES;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_param table
|
||||
-- ========================================
|
||||
CREATE ALIAS UPDATE_PARAM_TABLE_INDEXES AS $$
|
||||
void updateParamTableIndexes(java.sql.Connection conn) throws java.sql.SQLException {
|
||||
boolean tableExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getTables(null, null, "HZB_PARAM", null)) {
|
||||
if (rs.next()) tableExists = true;
|
||||
}
|
||||
|
||||
if (tableExists) {
|
||||
try (java.sql.Statement stmt = conn.createStatement()) {
|
||||
// Drop old index if exists
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_PARAM", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("IDX_HZB_PARAM_MONITOR_ID".equalsIgnoreCase(indexName)) {
|
||||
stmt.execute("DROP INDEX IDX_HZB_PARAM_MONITOR_ID");
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Index may not exist, continue
|
||||
}
|
||||
|
||||
// Create new index if not exist
|
||||
boolean indexExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_PARAM", false, false)) {
|
||||
while (rs.next()) {
|
||||
if ("IDX_HZB_PARAM_MONITOR_ID".equalsIgnoreCase(rs.getString("INDEX_NAME"))) {
|
||||
indexExists = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!indexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_HZB_PARAM_MONITOR_ID ON HZB_PARAM(MONITOR_ID)");
|
||||
}
|
||||
|
||||
// Drop old unique constraint if exists
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_PARAM", true, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if (indexName != null && indexName.equalsIgnoreCase("UK_HZB_PARAM_MONITOR_FIELD")) {
|
||||
stmt.execute("DROP INDEX UK_HZB_PARAM_MONITOR_FIELD");
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Constraint may not exist, continue
|
||||
}
|
||||
|
||||
// Create new unique constraint if not exist
|
||||
boolean constraintExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_PARAM", true, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if (indexName != null && indexName.equalsIgnoreCase("UK_HZB_PARAM_MONITOR_FIELD")) {
|
||||
constraintExists = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!constraintExists) {
|
||||
stmt.execute("CREATE UNIQUE INDEX UK_HZB_PARAM_MONITOR_FIELD ON HZB_PARAM(MONITOR_ID, FIELD)");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$$;
|
||||
CALL UPDATE_PARAM_TABLE_INDEXES();
|
||||
DROP ALIAS UPDATE_PARAM_TABLE_INDEXES;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_plugin_param table
|
||||
-- ========================================
|
||||
CREATE ALIAS UPDATE_PLUGIN_PARAM_TABLE_INDEXES AS $$
|
||||
void updatePluginParamTableIndexes(java.sql.Connection conn) throws java.sql.SQLException {
|
||||
boolean tableExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getTables(null, null, "HZB_PLUGIN_PARAM", null)) {
|
||||
if (rs.next()) tableExists = true;
|
||||
}
|
||||
|
||||
if (tableExists) {
|
||||
try (java.sql.Statement stmt = conn.createStatement()) {
|
||||
// Drop old index if exists
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_PLUGIN_PARAM", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("IDX_HZB_PLUGIN_PARAM_PLUGIN_METADATA_ID".equalsIgnoreCase(indexName)) {
|
||||
stmt.execute("DROP INDEX IDX_HZB_PLUGIN_PARAM_PLUGIN_METADATA_ID");
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Index may not exist, continue
|
||||
}
|
||||
|
||||
// Create new index if not exist
|
||||
boolean indexExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_PLUGIN_PARAM", false, false)) {
|
||||
while (rs.next()) {
|
||||
if ("IDX_HZB_PLUGIN_PARAM_PLUGIN_METADATA_ID".equalsIgnoreCase(rs.getString("INDEX_NAME"))) {
|
||||
indexExists = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!indexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_HZB_PLUGIN_PARAM_PLUGIN_METADATA_ID ON HZB_PLUGIN_PARAM(PLUGIN_METADATA_ID)");
|
||||
}
|
||||
|
||||
// Drop old unique constraint if exists
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_PLUGIN_PARAM", true, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if (indexName != null && indexName.equalsIgnoreCase("UK_HZB_PLUGIN_PARAM_METADATA_FIELD")) {
|
||||
stmt.execute("DROP INDEX UK_HZB_PLUGIN_PARAM_METADATA_FIELD");
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Constraint may not exist, continue
|
||||
}
|
||||
|
||||
// Create new unique constraint if not exist
|
||||
boolean constraintExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_PLUGIN_PARAM", true, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if (indexName != null && indexName.equalsIgnoreCase("UK_HZB_PLUGIN_PARAM_METADATA_FIELD")) {
|
||||
constraintExists = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!constraintExists) {
|
||||
stmt.execute("CREATE UNIQUE INDEX UK_HZB_PLUGIN_PARAM_METADATA_FIELD ON HZB_PLUGIN_PARAM(PLUGIN_METADATA_ID, FIELD)");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$$;
|
||||
CALL UPDATE_PLUGIN_PARAM_TABLE_INDEXES();
|
||||
DROP ALIAS UPDATE_PLUGIN_PARAM_TABLE_INDEXES;
|
||||
|
||||
@@ -1,534 +0,0 @@
|
||||
-- Licensed to the Apache Software Foundation (ASF) under one
|
||||
-- or more contributor license agreements. See the NOTICE file
|
||||
-- distributed with this work for additional information
|
||||
-- regarding copyright ownership. The ASF licenses this file
|
||||
-- to you under the Apache License, Version 2.0 (the
|
||||
-- "License"); you may not use this file except in compliance
|
||||
-- with the License. You may obtain a copy of the License at
|
||||
--
|
||||
-- http://www.apache.org/licenses/LICENSE-2.0
|
||||
--
|
||||
-- Unless required by applicable law or agreed to in writing,
|
||||
-- software distributed under the License is distributed on an
|
||||
-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||
-- or implied. See the License for the specific language
|
||||
-- governing permissions and limitations
|
||||
-- under the License.
|
||||
|
||||
-- Ensure every SQL can rerun without error
|
||||
-- This migration updates indexes to match the entity annotations
|
||||
|
||||
-- ========================================
|
||||
-- hzb_alert_define_monitor_bind table
|
||||
-- ========================================
|
||||
CREATE ALIAS UPDATE_ALERT_DEFINE_MONITOR_BIND_INDEXES AS $$
|
||||
void updateAlertDefineMonitorBindIndexes(java.sql.Connection conn) throws java.sql.SQLException {
|
||||
boolean tableExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getTables(null, null, "HZB_ALERT_DEFINE_MONITOR_BIND", null)) {
|
||||
if (rs.next()) tableExists = true;
|
||||
}
|
||||
|
||||
if (tableExists) {
|
||||
try (java.sql.Statement stmt = conn.createStatement()) {
|
||||
// Drop old index if exists
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_ALERT_DEFINE_MONITOR_BIND", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("INDEX_ALERT_DEFINE_MONITOR".equalsIgnoreCase(indexName)) {
|
||||
stmt.execute("DROP INDEX INDEX_ALERT_DEFINE_MONITOR");
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Index may not exist, continue
|
||||
}
|
||||
|
||||
// Create new indexes if not exist
|
||||
boolean alertDefineIdIndexExists = false;
|
||||
boolean monitorIdIndexExists = false;
|
||||
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_ALERT_DEFINE_MONITOR_BIND", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("IDX_ALERT_DEFINE_ID".equalsIgnoreCase(indexName)) {
|
||||
alertDefineIdIndexExists = true;
|
||||
}
|
||||
if ("IDX_MONITOR_ID".equalsIgnoreCase(indexName)) {
|
||||
monitorIdIndexExists = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!alertDefineIdIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_ALERT_DEFINE_ID ON HZB_ALERT_DEFINE_MONITOR_BIND(ALERT_DEFINE_ID)");
|
||||
}
|
||||
|
||||
if (!monitorIdIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_MONITOR_ID ON HZB_ALERT_DEFINE_MONITOR_BIND(MONITOR_ID)");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$$;
|
||||
CALL UPDATE_ALERT_DEFINE_MONITOR_BIND_INDEXES();
|
||||
DROP ALIAS UPDATE_ALERT_DEFINE_MONITOR_BIND_INDEXES;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_collector_monitor_bind table
|
||||
-- ========================================
|
||||
CREATE ALIAS UPDATE_COLLECTOR_MONITOR_BIND_INDEXES AS $$
|
||||
void updateCollectorMonitorBindIndexes(java.sql.Connection conn) throws java.sql.SQLException {
|
||||
boolean tableExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getTables(null, null, "HZB_COLLECTOR_MONITOR_BIND", null)) {
|
||||
if (rs.next()) tableExists = true;
|
||||
}
|
||||
|
||||
if (tableExists) {
|
||||
try (java.sql.Statement stmt = conn.createStatement()) {
|
||||
// Drop old index if exists
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_COLLECTOR_MONITOR_BIND", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("INDEX_COLLECTOR_MONITOR".equalsIgnoreCase(indexName)) {
|
||||
stmt.execute("DROP INDEX INDEX_COLLECTOR_MONITOR");
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Index may not exist, continue
|
||||
}
|
||||
|
||||
// Create new indexes if not exist
|
||||
boolean collectorIndexExists = false;
|
||||
boolean monitorIdIndexExists = false;
|
||||
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_COLLECTOR_MONITOR_BIND", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("IDX_COLLECTOR_MONITOR_COLLECTOR".equalsIgnoreCase(indexName)) {
|
||||
collectorIndexExists = true;
|
||||
}
|
||||
if ("IDX_COLLECTOR_MONITOR_MONITOR_ID".equalsIgnoreCase(indexName)) {
|
||||
monitorIdIndexExists = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!collectorIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_COLLECTOR_MONITOR_COLLECTOR ON HZB_COLLECTOR_MONITOR_BIND(COLLECTOR)");
|
||||
}
|
||||
|
||||
if (!monitorIdIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_COLLECTOR_MONITOR_MONITOR_ID ON HZB_COLLECTOR_MONITOR_BIND(MONITOR_ID)");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$$;
|
||||
CALL UPDATE_COLLECTOR_MONITOR_BIND_INDEXES();
|
||||
DROP ALIAS UPDATE_COLLECTOR_MONITOR_BIND_INDEXES;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_monitor table
|
||||
-- ========================================
|
||||
CREATE ALIAS UPDATE_MONITOR_INDEXES AS $$
|
||||
void updateMonitorIndexes(java.sql.Connection conn) throws java.sql.SQLException {
|
||||
boolean tableExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getTables(null, null, "HZB_MONITOR", null)) {
|
||||
if (rs.next()) tableExists = true;
|
||||
}
|
||||
|
||||
if (tableExists) {
|
||||
try (java.sql.Statement stmt = conn.createStatement()) {
|
||||
// Drop old index if exists
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_MONITOR", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("MONITOR_QUERY_INDEX".equalsIgnoreCase(indexName)) {
|
||||
stmt.execute("DROP INDEX MONITOR_QUERY_INDEX");
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Index may not exist, continue
|
||||
}
|
||||
|
||||
// Create new indexes if not exist
|
||||
boolean appIndexExists = false;
|
||||
boolean instanceIndexExists = false;
|
||||
boolean nameIndexExists = false;
|
||||
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_MONITOR", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("IDX_HZB_MONITOR_APP".equalsIgnoreCase(indexName)) {
|
||||
appIndexExists = true;
|
||||
}
|
||||
if ("IDX_HZB_MONITOR_INSTANCE".equalsIgnoreCase(indexName)) {
|
||||
instanceIndexExists = true;
|
||||
}
|
||||
if ("IDX_HZB_MONITOR_NAME".equalsIgnoreCase(indexName)) {
|
||||
nameIndexExists = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!appIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_HZB_MONITOR_APP ON HZB_MONITOR(APP)");
|
||||
}
|
||||
|
||||
if (!instanceIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_HZB_MONITOR_INSTANCE ON HZB_MONITOR(INSTANCE)");
|
||||
}
|
||||
|
||||
if (!nameIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_HZB_MONITOR_NAME ON HZB_MONITOR(NAME)");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$$;
|
||||
CALL UPDATE_MONITOR_INDEXES();
|
||||
DROP ALIAS UPDATE_MONITOR_INDEXES;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_monitor_bind table
|
||||
-- ========================================
|
||||
CREATE ALIAS UPDATE_MONITOR_BIND_INDEXES AS $$
|
||||
void updateMonitorBindIndexes(java.sql.Connection conn) throws java.sql.SQLException {
|
||||
boolean tableExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getTables(null, null, "HZB_MONITOR_BIND", null)) {
|
||||
if (rs.next()) tableExists = true;
|
||||
}
|
||||
|
||||
if (tableExists) {
|
||||
try (java.sql.Statement stmt = conn.createStatement()) {
|
||||
// Create new index if not exist
|
||||
boolean bindIndexExists = false;
|
||||
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_MONITOR_BIND", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("INDEX_MONITOR_BIND".equalsIgnoreCase(indexName)) {
|
||||
bindIndexExists = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!bindIndexExists) {
|
||||
stmt.execute("CREATE INDEX INDEX_MONITOR_BIND ON HZB_MONITOR_BIND(BIZ_ID)");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$$;
|
||||
CALL UPDATE_MONITOR_BIND_INDEXES();
|
||||
DROP ALIAS UPDATE_MONITOR_BIND_INDEXES;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_status_page_incident_component_bind table
|
||||
-- Special handling: component_id might have auto-created index from FK
|
||||
-- ========================================
|
||||
CREATE ALIAS UPDATE_STATUS_PAGE_INCIDENT_COMPONENT_BIND_INDEXES AS $$
|
||||
void updateStatusPageIncidentComponentBindIndexes(java.sql.Connection conn) throws java.sql.SQLException {
|
||||
boolean tableExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getTables(null, null, "HZB_STATUS_PAGE_INCIDENT_COMPONENT_BIND", null)) {
|
||||
if (rs.next()) tableExists = true;
|
||||
}
|
||||
|
||||
if (tableExists) {
|
||||
try (java.sql.Statement stmt = conn.createStatement()) {
|
||||
// Check if component_id column already has any index
|
||||
boolean hasComponentIdIndex = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_STATUS_PAGE_INCIDENT_COMPONENT_BIND", false, false)) {
|
||||
while (rs.next()) {
|
||||
String columnName = rs.getString("COLUMN_NAME");
|
||||
if (columnName != null && "COMPONENT_ID".equalsIgnoreCase(columnName)) {
|
||||
hasComponentIdIndex = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Create index on component_id only if no index exists on this column
|
||||
if (!hasComponentIdIndex) {
|
||||
stmt.execute("CREATE INDEX IDX_INCIDENT_COMPONENT_COMPONENT_ID ON HZB_STATUS_PAGE_INCIDENT_COMPONENT_BIND(COMPONENT_ID)");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$$;
|
||||
CALL UPDATE_STATUS_PAGE_INCIDENT_COMPONENT_BIND_INDEXES();
|
||||
DROP ALIAS UPDATE_STATUS_PAGE_INCIDENT_COMPONENT_BIND_INDEXES;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_push_metrics table
|
||||
-- ========================================
|
||||
CREATE ALIAS UPDATE_PUSH_METRICS_INDEXES AS $$
|
||||
void updatePushMetricsIndexes(java.sql.Connection conn) throws java.sql.SQLException {
|
||||
boolean tableExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getTables(null, null, "HZB_PUSH_METRICS", null)) {
|
||||
if (rs.next()) tableExists = true;
|
||||
}
|
||||
|
||||
if (tableExists) {
|
||||
try (java.sql.Statement stmt = conn.createStatement()) {
|
||||
// Drop old index if exists
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_PUSH_METRICS", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("PUSH_QUERY_INDEX".equalsIgnoreCase(indexName)) {
|
||||
stmt.execute("DROP INDEX PUSH_QUERY_INDEX");
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Index may not exist, continue
|
||||
}
|
||||
|
||||
// Create new indexes if not exist
|
||||
boolean monitorIdIndexExists = false;
|
||||
boolean timeIndexExists = false;
|
||||
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_PUSH_METRICS", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("IDX_PUSH_METRICS_MONITOR_ID".equalsIgnoreCase(indexName)) {
|
||||
monitorIdIndexExists = true;
|
||||
}
|
||||
if ("IDX_PUSH_METRICS_TIME".equalsIgnoreCase(indexName)) {
|
||||
timeIndexExists = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!monitorIdIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_PUSH_METRICS_MONITOR_ID ON HZB_PUSH_METRICS(MONITOR_ID)");
|
||||
}
|
||||
|
||||
if (!timeIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_PUSH_METRICS_TIME ON HZB_PUSH_METRICS(TIME)");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$$;
|
||||
CALL UPDATE_PUSH_METRICS_INDEXES();
|
||||
DROP ALIAS UPDATE_PUSH_METRICS_INDEXES;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_history table
|
||||
-- ========================================
|
||||
CREATE ALIAS UPDATE_HISTORY_INDEXES AS $$
|
||||
void updateHistoryIndexes(java.sql.Connection conn) throws java.sql.SQLException {
|
||||
boolean tableExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getTables(null, null, "HZB_HISTORY", null)) {
|
||||
if (rs.next()) tableExists = true;
|
||||
}
|
||||
|
||||
if (tableExists) {
|
||||
try (java.sql.Statement stmt = conn.createStatement()) {
|
||||
// Drop old index if exists
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_HISTORY", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("HISTORY_QUERY_INDEX".equalsIgnoreCase(indexName)) {
|
||||
stmt.execute("DROP INDEX HISTORY_QUERY_INDEX");
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Index may not exist, continue
|
||||
}
|
||||
|
||||
// Create new indexes if not exist
|
||||
boolean instanceIndexExists = false;
|
||||
boolean appIndexExists = false;
|
||||
boolean metricsIndexExists = false;
|
||||
boolean metricIndexExists = false;
|
||||
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_HISTORY", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("IDX_HZB_HISTORY_INSTANCE".equalsIgnoreCase(indexName)) {
|
||||
instanceIndexExists = true;
|
||||
}
|
||||
if ("IDX_HZB_HISTORY_APP".equalsIgnoreCase(indexName)) {
|
||||
appIndexExists = true;
|
||||
}
|
||||
if ("IDX_HZB_HISTORY_METRICS".equalsIgnoreCase(indexName)) {
|
||||
metricsIndexExists = true;
|
||||
}
|
||||
if ("IDX_HZB_HISTORY_METRIC".equalsIgnoreCase(indexName)) {
|
||||
metricIndexExists = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!instanceIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_HZB_HISTORY_INSTANCE ON HZB_HISTORY(INSTANCE)");
|
||||
}
|
||||
|
||||
if (!appIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_HZB_HISTORY_APP ON HZB_HISTORY(APP)");
|
||||
}
|
||||
|
||||
if (!metricsIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_HZB_HISTORY_METRICS ON HZB_HISTORY(METRICS)");
|
||||
}
|
||||
|
||||
if (!metricIndexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_HZB_HISTORY_METRIC ON HZB_HISTORY(METRIC)");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$$;
|
||||
CALL UPDATE_HISTORY_INDEXES();
|
||||
DROP ALIAS UPDATE_HISTORY_INDEXES;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_param table
|
||||
-- ========================================
|
||||
CREATE ALIAS UPDATE_PARAM_TABLE_INDEXES AS $$
|
||||
void updateParamTableIndexes(java.sql.Connection conn) throws java.sql.SQLException {
|
||||
boolean tableExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getTables(null, null, "HZB_PARAM", null)) {
|
||||
if (rs.next()) tableExists = true;
|
||||
}
|
||||
|
||||
if (tableExists) {
|
||||
try (java.sql.Statement stmt = conn.createStatement()) {
|
||||
// Drop old index if exists
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_PARAM", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("IDX_HZB_PARAM_MONITOR_ID".equalsIgnoreCase(indexName)) {
|
||||
stmt.execute("DROP INDEX IDX_HZB_PARAM_MONITOR_ID");
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Index may not exist, continue
|
||||
}
|
||||
|
||||
// Create new index if not exist
|
||||
boolean indexExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_PARAM", false, false)) {
|
||||
while (rs.next()) {
|
||||
if ("IDX_HZB_PARAM_MONITOR_ID".equalsIgnoreCase(rs.getString("INDEX_NAME"))) {
|
||||
indexExists = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!indexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_HZB_PARAM_MONITOR_ID ON HZB_PARAM(MONITOR_ID)");
|
||||
}
|
||||
|
||||
// Drop old unique constraint if exists
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_PARAM", true, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if (indexName != null && indexName.equalsIgnoreCase("UK_HZB_PARAM_MONITOR_FIELD")) {
|
||||
stmt.execute("DROP INDEX UK_HZB_PARAM_MONITOR_FIELD");
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Constraint may not exist, continue
|
||||
}
|
||||
|
||||
// Create new unique constraint if not exist
|
||||
boolean constraintExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_PARAM", true, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if (indexName != null && indexName.equalsIgnoreCase("UK_HZB_PARAM_MONITOR_FIELD")) {
|
||||
constraintExists = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!constraintExists) {
|
||||
stmt.execute("CREATE UNIQUE INDEX UK_HZB_PARAM_MONITOR_FIELD ON HZB_PARAM(MONITOR_ID, FIELD)");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$$;
|
||||
CALL UPDATE_PARAM_TABLE_INDEXES();
|
||||
DROP ALIAS UPDATE_PARAM_TABLE_INDEXES;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_plugin_param table
|
||||
-- ========================================
|
||||
CREATE ALIAS UPDATE_PLUGIN_PARAM_TABLE_INDEXES AS $$
|
||||
void updatePluginParamTableIndexes(java.sql.Connection conn) throws java.sql.SQLException {
|
||||
boolean tableExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getTables(null, null, "HZB_PLUGIN_PARAM", null)) {
|
||||
if (rs.next()) tableExists = true;
|
||||
}
|
||||
|
||||
if (tableExists) {
|
||||
try (java.sql.Statement stmt = conn.createStatement()) {
|
||||
// Drop old index if exists
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_PLUGIN_PARAM", false, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if ("IDX_HZB_PLUGIN_PARAM_PLUGIN_METADATA_ID".equalsIgnoreCase(indexName)) {
|
||||
stmt.execute("DROP INDEX IDX_HZB_PLUGIN_PARAM_PLUGIN_METADATA_ID");
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Index may not exist, continue
|
||||
}
|
||||
|
||||
// Create new index if not exist
|
||||
boolean indexExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_PLUGIN_PARAM", false, false)) {
|
||||
while (rs.next()) {
|
||||
if ("IDX_HZB_PLUGIN_PARAM_PLUGIN_METADATA_ID".equalsIgnoreCase(rs.getString("INDEX_NAME"))) {
|
||||
indexExists = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!indexExists) {
|
||||
stmt.execute("CREATE INDEX IDX_HZB_PLUGIN_PARAM_PLUGIN_METADATA_ID ON HZB_PLUGIN_PARAM(PLUGIN_METADATA_ID)");
|
||||
}
|
||||
|
||||
// Drop old unique constraint if exists
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_PLUGIN_PARAM", true, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if (indexName != null && indexName.equalsIgnoreCase("UK_HZB_PLUGIN_PARAM_METADATA_FIELD")) {
|
||||
stmt.execute("DROP INDEX UK_HZB_PLUGIN_PARAM_METADATA_FIELD");
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Constraint may not exist, continue
|
||||
}
|
||||
|
||||
// Create new unique constraint if not exist
|
||||
boolean constraintExists = false;
|
||||
try (java.sql.ResultSet rs = conn.getMetaData().getIndexInfo(null, null, "HZB_PLUGIN_PARAM", true, false)) {
|
||||
while (rs.next()) {
|
||||
String indexName = rs.getString("INDEX_NAME");
|
||||
if (indexName != null && indexName.equalsIgnoreCase("UK_HZB_PLUGIN_PARAM_METADATA_FIELD")) {
|
||||
constraintExists = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!constraintExists) {
|
||||
stmt.execute("CREATE UNIQUE INDEX UK_HZB_PLUGIN_PARAM_METADATA_FIELD ON HZB_PLUGIN_PARAM(PLUGIN_METADATA_ID, FIELD)");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$$;
|
||||
CALL UPDATE_PLUGIN_PARAM_TABLE_INDEXES();
|
||||
DROP ALIAS UPDATE_PLUGIN_PARAM_TABLE_INDEXES;
|
||||
@@ -91,7 +91,7 @@ BEGIN
|
||||
|
||||
SELECT COUNT(*) INTO monitor_id_exists FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hzb_history' AND COLUMN_NAME = 'monitor_id';
|
||||
SELECT COUNT(*) INTO metric_labels_exists FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hzb_history' AND COLUMN_NAME = 'metric_labels';
|
||||
|
||||
|
||||
IF monitor_id_exists > 0 THEN
|
||||
IF metric_labels_exists = 0 THEN
|
||||
SET @sql_rename = 'ALTER TABLE hzb_history CHANGE instance metric_labels VARCHAR(5000)';
|
||||
@@ -111,9 +111,9 @@ BEGIN
|
||||
EXECUTE stmt_resize;
|
||||
DEALLOCATE PREPARE stmt_resize;
|
||||
END IF;
|
||||
|
||||
|
||||
UPDATE hzb_history h JOIN hzb_monitor m ON h.monitor_id = m.id SET h.instance = m.instance;
|
||||
|
||||
|
||||
SET @sql_drop = 'ALTER TABLE hzb_history DROP COLUMN monitor_id';
|
||||
PREPARE stmt_drop FROM @sql_drop;
|
||||
EXECUTE stmt_drop;
|
||||
@@ -124,4 +124,433 @@ DELIMITER ;
|
||||
CALL MigrateHistoryTable();
|
||||
DROP PROCEDURE IF EXISTS MigrateHistoryTable;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_alert_define_monitor_bind table
|
||||
-- ========================================
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE UpdateAlertDefineMonitorBindIndexes()
|
||||
BEGIN
|
||||
DECLARE table_exists INT;
|
||||
|
||||
SELECT COUNT(*) INTO table_exists
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hzb_alert_define_monitor_bind';
|
||||
|
||||
IF table_exists = 1 THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_alert_define_monitor_bind'
|
||||
AND INDEX_NAME = 'index_alert_define_monitor') THEN
|
||||
SET @drop_sql = 'DROP INDEX index_alert_define_monitor ON hzb_alert_define_monitor_bind';
|
||||
PREPARE stmt FROM @drop_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
END IF;
|
||||
|
||||
-- Create new indexes if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_alert_define_monitor_bind'
|
||||
AND INDEX_NAME = 'idx_alert_define_id') THEN
|
||||
CREATE INDEX idx_alert_define_id ON hzb_alert_define_monitor_bind(alert_define_id);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_alert_define_monitor_bind'
|
||||
AND INDEX_NAME = 'idx_monitor_id') THEN
|
||||
CREATE INDEX idx_monitor_id ON hzb_alert_define_monitor_bind(monitor_id);
|
||||
END IF;
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
CALL UpdateAlertDefineMonitorBindIndexes();
|
||||
DROP PROCEDURE IF EXISTS UpdateAlertDefineMonitorBindIndexes;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_collector_monitor_bind table
|
||||
-- ========================================
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE UpdateCollectorMonitorBindIndexes()
|
||||
BEGIN
|
||||
DECLARE table_exists INT;
|
||||
|
||||
SELECT COUNT(*) INTO table_exists
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hzb_collector_monitor_bind';
|
||||
|
||||
IF table_exists = 1 THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_collector_monitor_bind'
|
||||
AND INDEX_NAME = 'index_collector_monitor') THEN
|
||||
SET @drop_sql = 'DROP INDEX index_collector_monitor ON hzb_collector_monitor_bind';
|
||||
PREPARE stmt FROM @drop_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
END IF;
|
||||
|
||||
-- Create new indexes if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_collector_monitor_bind'
|
||||
AND INDEX_NAME = 'idx_collector_monitor_collector') THEN
|
||||
CREATE INDEX idx_collector_monitor_collector ON hzb_collector_monitor_bind(collector);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_collector_monitor_bind'
|
||||
AND INDEX_NAME = 'idx_collector_monitor_monitor_id') THEN
|
||||
CREATE INDEX idx_collector_monitor_monitor_id ON hzb_collector_monitor_bind(monitor_id);
|
||||
END IF;
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
CALL UpdateCollectorMonitorBindIndexes();
|
||||
DROP PROCEDURE IF EXISTS UpdateCollectorMonitorBindIndexes;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_monitor table
|
||||
-- ========================================
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE UpdateMonitorIndexes()
|
||||
BEGIN
|
||||
DECLARE table_exists INT;
|
||||
|
||||
SELECT COUNT(*) INTO table_exists
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hzb_monitor';
|
||||
|
||||
IF table_exists = 1 THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_monitor'
|
||||
AND INDEX_NAME = 'monitor_query_index') THEN
|
||||
SET @drop_sql = 'DROP INDEX monitor_query_index ON hzb_monitor';
|
||||
PREPARE stmt FROM @drop_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
END IF;
|
||||
|
||||
-- Create new indexes if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_monitor'
|
||||
AND INDEX_NAME = 'idx_hzb_monitor_app') THEN
|
||||
CREATE INDEX idx_hzb_monitor_app ON hzb_monitor(app);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_monitor'
|
||||
AND INDEX_NAME = 'idx_hzb_monitor_instance') THEN
|
||||
CREATE INDEX idx_hzb_monitor_instance ON hzb_monitor(instance);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_monitor'
|
||||
AND INDEX_NAME = 'idx_hzb_monitor_name') THEN
|
||||
CREATE INDEX idx_hzb_monitor_name ON hzb_monitor(name);
|
||||
END IF;
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
CALL UpdateMonitorIndexes();
|
||||
DROP PROCEDURE IF EXISTS UpdateMonitorIndexes;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_monitor_bind table
|
||||
-- ========================================
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE UpdateMonitorBindIndexes()
|
||||
BEGIN
|
||||
DECLARE table_exists INT;
|
||||
|
||||
SELECT COUNT(*) INTO table_exists
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hzb_monitor_bind';
|
||||
|
||||
IF table_exists = 1 THEN
|
||||
-- Create new index if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_monitor_bind'
|
||||
AND INDEX_NAME = 'index_monitor_bind') THEN
|
||||
CREATE INDEX index_monitor_bind ON hzb_monitor_bind(biz_id);
|
||||
END IF;
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
CALL UpdateMonitorBindIndexes();
|
||||
DROP PROCEDURE IF EXISTS UpdateMonitorBindIndexes;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_status_page_incident_component_bind table
|
||||
-- Special handling: component_id might have auto-created index from FK
|
||||
-- ========================================
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE UpdateStatusPageIncidentComponentBindIndexes()
|
||||
BEGIN
|
||||
DECLARE table_exists INT;
|
||||
DECLARE component_id_has_index INT;
|
||||
|
||||
SELECT COUNT(*) INTO table_exists
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hzb_status_page_incident_component_bind';
|
||||
|
||||
IF table_exists = 1 THEN
|
||||
-- Check if component_id column already has any index (including auto-created by FK)
|
||||
SELECT COUNT(*) INTO component_id_has_index
|
||||
FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_status_page_incident_component_bind'
|
||||
AND COLUMN_NAME = 'component_id'
|
||||
AND INDEX_NAME != 'PRIMARY';
|
||||
|
||||
-- Create index on component_id only if no index exists on this column
|
||||
IF component_id_has_index = 0 THEN
|
||||
CREATE INDEX idx_incident_component_component_id ON hzb_status_page_incident_component_bind(component_id);
|
||||
END IF;
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
CALL UpdateStatusPageIncidentComponentBindIndexes();
|
||||
DROP PROCEDURE IF EXISTS UpdateStatusPageIncidentComponentBindIndexes;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_push_metrics table
|
||||
-- ========================================
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE UpdatePushMetricsIndexes()
|
||||
BEGIN
|
||||
DECLARE table_exists INT;
|
||||
|
||||
SELECT COUNT(*) INTO table_exists
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hzb_push_metrics';
|
||||
|
||||
IF table_exists = 1 THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_push_metrics'
|
||||
AND INDEX_NAME = 'push_query_index') THEN
|
||||
SET @drop_sql = 'DROP INDEX push_query_index ON hzb_push_metrics';
|
||||
PREPARE stmt FROM @drop_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
END IF;
|
||||
|
||||
-- Create new indexes if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_push_metrics'
|
||||
AND INDEX_NAME = 'idx_push_metrics_monitor_id') THEN
|
||||
CREATE INDEX idx_push_metrics_monitor_id ON hzb_push_metrics(monitor_id);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_push_metrics'
|
||||
AND INDEX_NAME = 'idx_push_metrics_time') THEN
|
||||
CREATE INDEX idx_push_metrics_time ON hzb_push_metrics(time);
|
||||
END IF;
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
CALL UpdatePushMetricsIndexes();
|
||||
DROP PROCEDURE IF EXISTS UpdatePushMetricsIndexes;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_history table
|
||||
-- ========================================
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE UpdateHistoryIndexes()
|
||||
BEGIN
|
||||
DECLARE table_exists INT;
|
||||
|
||||
SELECT COUNT(*) INTO table_exists
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hzb_history';
|
||||
|
||||
IF table_exists = 1 THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_history'
|
||||
AND INDEX_NAME = 'history_query_index') THEN
|
||||
SET @drop_sql = 'DROP INDEX history_query_index ON hzb_history';
|
||||
PREPARE stmt FROM @drop_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
END IF;
|
||||
|
||||
-- Create new indexes if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_history'
|
||||
AND INDEX_NAME = 'idx_hzb_history_instance') THEN
|
||||
CREATE INDEX idx_hzb_history_instance ON hzb_history(instance);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_history'
|
||||
AND INDEX_NAME = 'idx_hzb_history_app') THEN
|
||||
CREATE INDEX idx_hzb_history_app ON hzb_history(app);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_history'
|
||||
AND INDEX_NAME = 'idx_hzb_history_metrics') THEN
|
||||
CREATE INDEX idx_hzb_history_metrics ON hzb_history(metrics);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_history'
|
||||
AND INDEX_NAME = 'idx_hzb_history_metric') THEN
|
||||
CREATE INDEX idx_hzb_history_metric ON hzb_history(metric);
|
||||
END IF;
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
CALL UpdateHistoryIndexes();
|
||||
DROP PROCEDURE IF EXISTS UpdateHistoryIndexes;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_param table
|
||||
-- ========================================
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE UpdateParamTableIndexes()
|
||||
BEGIN
|
||||
DECLARE table_exists INT;
|
||||
|
||||
SELECT COUNT(*) INTO table_exists
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hzb_param';
|
||||
|
||||
IF table_exists = 1 THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_param'
|
||||
AND INDEX_NAME = 'idx_hzb_param_monitor_id') THEN
|
||||
SET @drop_sql = 'DROP INDEX idx_hzb_param_monitor_id ON hzb_param';
|
||||
PREPARE stmt FROM @drop_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
END IF;
|
||||
|
||||
-- Create new index if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_param'
|
||||
AND INDEX_NAME = 'idx_hzb_param_monitor_id') THEN
|
||||
CREATE INDEX idx_hzb_param_monitor_id ON hzb_param(monitor_id);
|
||||
END IF;
|
||||
|
||||
-- Drop old unique constraint if exists
|
||||
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_param'
|
||||
AND CONSTRAINT_TYPE = 'UNIQUE'
|
||||
AND CONSTRAINT_NAME = 'uk_hzb_param_monitor_field') THEN
|
||||
SET @drop_sql = 'ALTER TABLE hzb_param DROP INDEX uk_hzb_param_monitor_field';
|
||||
PREPARE stmt FROM @drop_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
END IF;
|
||||
|
||||
-- Create new unique constraint if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_param'
|
||||
AND CONSTRAINT_TYPE = 'UNIQUE'
|
||||
AND CONSTRAINT_NAME = 'uk_hzb_param_monitor_field') THEN
|
||||
ALTER TABLE hzb_param
|
||||
ADD CONSTRAINT uk_hzb_param_monitor_field
|
||||
UNIQUE (monitor_id, field);
|
||||
END IF;
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
CALL UpdateParamTableIndexes();
|
||||
DROP PROCEDURE IF EXISTS UpdateParamTableIndexes;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_plugin_param table
|
||||
-- ========================================
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE UpdatePluginParamTableIndexes()
|
||||
BEGIN
|
||||
DECLARE table_exists INT;
|
||||
|
||||
SELECT COUNT(*) INTO table_exists
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hzb_plugin_param';
|
||||
|
||||
IF table_exists = 1 THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_plugin_param'
|
||||
AND INDEX_NAME = 'idx_hzb_plugin_param_plugin_metadata_id') THEN
|
||||
SET @drop_sql = 'DROP INDEX idx_hzb_plugin_param_plugin_metadata_id ON hzb_plugin_param';
|
||||
PREPARE stmt FROM @drop_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
END IF;
|
||||
|
||||
-- Create new index if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_plugin_param'
|
||||
AND INDEX_NAME = 'idx_hzb_plugin_param_plugin_metadata_id') THEN
|
||||
CREATE INDEX idx_hzb_plugin_param_plugin_metadata_id ON hzb_plugin_param(plugin_metadata_id);
|
||||
END IF;
|
||||
|
||||
-- Drop old unique constraint if exists
|
||||
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_plugin_param'
|
||||
AND CONSTRAINT_TYPE = 'UNIQUE'
|
||||
AND CONSTRAINT_NAME = 'uk_hzb_plugin_param_metadata_field') THEN
|
||||
SET @drop_sql = 'ALTER TABLE hzb_plugin_param DROP INDEX uk_hzb_plugin_param_metadata_field';
|
||||
PREPARE stmt FROM @drop_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
END IF;
|
||||
|
||||
-- Create new unique constraint if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_plugin_param'
|
||||
AND CONSTRAINT_TYPE = 'UNIQUE'
|
||||
AND CONSTRAINT_NAME = 'uk_hzb_plugin_param_metadata_field') THEN
|
||||
ALTER TABLE hzb_plugin_param
|
||||
ADD CONSTRAINT uk_hzb_plugin_param_metadata_field
|
||||
UNIQUE (plugin_metadata_id, field);
|
||||
END IF;
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
CALL UpdatePluginParamTableIndexes();
|
||||
DROP PROCEDURE IF EXISTS UpdatePluginParamTableIndexes;
|
||||
|
||||
COMMIT;
|
||||
|
||||
@@ -1,450 +0,0 @@
|
||||
-- Licensed to the Apache Software Foundation (ASF) under one
|
||||
-- or more contributor license agreements. See the NOTICE file
|
||||
-- distributed with this work for additional information
|
||||
-- regarding copyright ownership. The ASF licenses this file
|
||||
-- to you under the Apache License, Version 2.0 (the
|
||||
-- "License"); you may not use this file except in compliance
|
||||
-- with the License. You may obtain a copy of the License at
|
||||
--
|
||||
-- http://www.apache.org/licenses/LICENSE-2.0
|
||||
--
|
||||
-- Unless required by applicable law or agreed to in writing,
|
||||
-- software distributed under the License is distributed on an
|
||||
-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||
-- or implied. See the License for the specific language
|
||||
-- governing permissions and limitations
|
||||
-- under the License.
|
||||
|
||||
-- Ensure every SQL can rerun without error
|
||||
-- This migration updates indexes to match the entity annotations
|
||||
|
||||
-- ========================================
|
||||
-- hzb_alert_define_monitor_bind table
|
||||
-- ========================================
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE UpdateAlertDefineMonitorBindIndexes()
|
||||
BEGIN
|
||||
DECLARE table_exists INT;
|
||||
|
||||
SELECT COUNT(*) INTO table_exists
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hzb_alert_define_monitor_bind';
|
||||
|
||||
IF table_exists = 1 THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_alert_define_monitor_bind'
|
||||
AND INDEX_NAME = 'index_alert_define_monitor') THEN
|
||||
SET @drop_sql = 'DROP INDEX index_alert_define_monitor ON hzb_alert_define_monitor_bind';
|
||||
PREPARE stmt FROM @drop_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
END IF;
|
||||
|
||||
-- Create new indexes if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_alert_define_monitor_bind'
|
||||
AND INDEX_NAME = 'idx_alert_define_id') THEN
|
||||
CREATE INDEX idx_alert_define_id ON hzb_alert_define_monitor_bind(alert_define_id);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_alert_define_monitor_bind'
|
||||
AND INDEX_NAME = 'idx_monitor_id') THEN
|
||||
CREATE INDEX idx_monitor_id ON hzb_alert_define_monitor_bind(monitor_id);
|
||||
END IF;
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
CALL UpdateAlertDefineMonitorBindIndexes();
|
||||
DROP PROCEDURE IF EXISTS UpdateAlertDefineMonitorBindIndexes;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_collector_monitor_bind table
|
||||
-- ========================================
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE UpdateCollectorMonitorBindIndexes()
|
||||
BEGIN
|
||||
DECLARE table_exists INT;
|
||||
|
||||
SELECT COUNT(*) INTO table_exists
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hzb_collector_monitor_bind';
|
||||
|
||||
IF table_exists = 1 THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_collector_monitor_bind'
|
||||
AND INDEX_NAME = 'index_collector_monitor') THEN
|
||||
SET @drop_sql = 'DROP INDEX index_collector_monitor ON hzb_collector_monitor_bind';
|
||||
PREPARE stmt FROM @drop_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
END IF;
|
||||
|
||||
-- Create new indexes if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_collector_monitor_bind'
|
||||
AND INDEX_NAME = 'idx_collector_monitor_collector') THEN
|
||||
CREATE INDEX idx_collector_monitor_collector ON hzb_collector_monitor_bind(collector);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_collector_monitor_bind'
|
||||
AND INDEX_NAME = 'idx_collector_monitor_monitor_id') THEN
|
||||
CREATE INDEX idx_collector_monitor_monitor_id ON hzb_collector_monitor_bind(monitor_id);
|
||||
END IF;
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
CALL UpdateCollectorMonitorBindIndexes();
|
||||
DROP PROCEDURE IF EXISTS UpdateCollectorMonitorBindIndexes;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_monitor table
|
||||
-- ========================================
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE UpdateMonitorIndexes()
|
||||
BEGIN
|
||||
DECLARE table_exists INT;
|
||||
|
||||
SELECT COUNT(*) INTO table_exists
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hzb_monitor';
|
||||
|
||||
IF table_exists = 1 THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_monitor'
|
||||
AND INDEX_NAME = 'monitor_query_index') THEN
|
||||
SET @drop_sql = 'DROP INDEX monitor_query_index ON hzb_monitor';
|
||||
PREPARE stmt FROM @drop_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
END IF;
|
||||
|
||||
-- Create new indexes if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_monitor'
|
||||
AND INDEX_NAME = 'idx_hzb_monitor_app') THEN
|
||||
CREATE INDEX idx_hzb_monitor_app ON hzb_monitor(app);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_monitor'
|
||||
AND INDEX_NAME = 'idx_hzb_monitor_instance') THEN
|
||||
CREATE INDEX idx_hzb_monitor_instance ON hzb_monitor(instance);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_monitor'
|
||||
AND INDEX_NAME = 'idx_hzb_monitor_name') THEN
|
||||
CREATE INDEX idx_hzb_monitor_name ON hzb_monitor(name);
|
||||
END IF;
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
CALL UpdateMonitorIndexes();
|
||||
DROP PROCEDURE IF EXISTS UpdateMonitorIndexes;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_monitor_bind table
|
||||
-- ========================================
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE UpdateMonitorBindIndexes()
|
||||
BEGIN
|
||||
DECLARE table_exists INT;
|
||||
|
||||
SELECT COUNT(*) INTO table_exists
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hzb_monitor_bind';
|
||||
|
||||
IF table_exists = 1 THEN
|
||||
-- Create new index if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_monitor_bind'
|
||||
AND INDEX_NAME = 'index_monitor_bind') THEN
|
||||
CREATE INDEX index_monitor_bind ON hzb_monitor_bind(biz_id);
|
||||
END IF;
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
CALL UpdateMonitorBindIndexes();
|
||||
DROP PROCEDURE IF EXISTS UpdateMonitorBindIndexes;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_status_page_incident_component_bind table
|
||||
-- Special handling: component_id might have auto-created index from FK
|
||||
-- ========================================
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE UpdateStatusPageIncidentComponentBindIndexes()
|
||||
BEGIN
|
||||
DECLARE table_exists INT;
|
||||
DECLARE component_id_has_index INT;
|
||||
|
||||
SELECT COUNT(*) INTO table_exists
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hzb_status_page_incident_component_bind';
|
||||
|
||||
IF table_exists = 1 THEN
|
||||
-- Check if component_id column already has any index (including auto-created by FK)
|
||||
SELECT COUNT(*) INTO component_id_has_index
|
||||
FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_status_page_incident_component_bind'
|
||||
AND COLUMN_NAME = 'component_id'
|
||||
AND INDEX_NAME != 'PRIMARY';
|
||||
|
||||
-- Create index on component_id only if no index exists on this column
|
||||
IF component_id_has_index = 0 THEN
|
||||
CREATE INDEX idx_incident_component_component_id ON hzb_status_page_incident_component_bind(component_id);
|
||||
END IF;
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
CALL UpdateStatusPageIncidentComponentBindIndexes();
|
||||
DROP PROCEDURE IF EXISTS UpdateStatusPageIncidentComponentBindIndexes;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_push_metrics table
|
||||
-- ========================================
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE UpdatePushMetricsIndexes()
|
||||
BEGIN
|
||||
DECLARE table_exists INT;
|
||||
|
||||
SELECT COUNT(*) INTO table_exists
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hzb_push_metrics';
|
||||
|
||||
IF table_exists = 1 THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_push_metrics'
|
||||
AND INDEX_NAME = 'push_query_index') THEN
|
||||
SET @drop_sql = 'DROP INDEX push_query_index ON hzb_push_metrics';
|
||||
PREPARE stmt FROM @drop_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
END IF;
|
||||
|
||||
-- Create new indexes if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_push_metrics'
|
||||
AND INDEX_NAME = 'idx_push_metrics_monitor_id') THEN
|
||||
CREATE INDEX idx_push_metrics_monitor_id ON hzb_push_metrics(monitor_id);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_push_metrics'
|
||||
AND INDEX_NAME = 'idx_push_metrics_time') THEN
|
||||
CREATE INDEX idx_push_metrics_time ON hzb_push_metrics(time);
|
||||
END IF;
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
CALL UpdatePushMetricsIndexes();
|
||||
DROP PROCEDURE IF EXISTS UpdatePushMetricsIndexes;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_history table
|
||||
-- ========================================
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE UpdateHistoryIndexes()
|
||||
BEGIN
|
||||
DECLARE table_exists INT;
|
||||
|
||||
SELECT COUNT(*) INTO table_exists
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hzb_history';
|
||||
|
||||
IF table_exists = 1 THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_history'
|
||||
AND INDEX_NAME = 'history_query_index') THEN
|
||||
SET @drop_sql = 'DROP INDEX history_query_index ON hzb_history';
|
||||
PREPARE stmt FROM @drop_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
END IF;
|
||||
|
||||
-- Create new indexes if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_history'
|
||||
AND INDEX_NAME = 'idx_hzb_history_instance') THEN
|
||||
CREATE INDEX idx_hzb_history_instance ON hzb_history(instance);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_history'
|
||||
AND INDEX_NAME = 'idx_hzb_history_app') THEN
|
||||
CREATE INDEX idx_hzb_history_app ON hzb_history(app);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_history'
|
||||
AND INDEX_NAME = 'idx_hzb_history_metrics') THEN
|
||||
CREATE INDEX idx_hzb_history_metrics ON hzb_history(metrics);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_history'
|
||||
AND INDEX_NAME = 'idx_hzb_history_metric') THEN
|
||||
CREATE INDEX idx_hzb_history_metric ON hzb_history(metric);
|
||||
END IF;
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
CALL UpdateHistoryIndexes();
|
||||
DROP PROCEDURE IF EXISTS UpdateHistoryIndexes;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_param table
|
||||
-- ========================================
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE UpdateParamTableIndexes()
|
||||
BEGIN
|
||||
DECLARE table_exists INT;
|
||||
|
||||
SELECT COUNT(*) INTO table_exists
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hzb_param';
|
||||
|
||||
IF table_exists = 1 THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_param'
|
||||
AND INDEX_NAME = 'idx_hzb_param_monitor_id') THEN
|
||||
SET @drop_sql = 'DROP INDEX idx_hzb_param_monitor_id ON hzb_param';
|
||||
PREPARE stmt FROM @drop_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
END IF;
|
||||
|
||||
-- Create new index if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_param'
|
||||
AND INDEX_NAME = 'idx_hzb_param_monitor_id') THEN
|
||||
CREATE INDEX idx_hzb_param_monitor_id ON hzb_param(monitor_id);
|
||||
END IF;
|
||||
|
||||
-- Drop old unique constraint if exists
|
||||
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_param'
|
||||
AND CONSTRAINT_TYPE = 'UNIQUE'
|
||||
AND CONSTRAINT_NAME = 'uk_hzb_param_monitor_field') THEN
|
||||
SET @drop_sql = 'ALTER TABLE hzb_param DROP INDEX uk_hzb_param_monitor_field';
|
||||
PREPARE stmt FROM @drop_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
END IF;
|
||||
|
||||
-- Create new unique constraint if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_param'
|
||||
AND CONSTRAINT_TYPE = 'UNIQUE'
|
||||
AND CONSTRAINT_NAME = 'uk_hzb_param_monitor_field') THEN
|
||||
ALTER TABLE hzb_param
|
||||
ADD CONSTRAINT uk_hzb_param_monitor_field
|
||||
UNIQUE (monitor_id, field);
|
||||
END IF;
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
CALL UpdateParamTableIndexes();
|
||||
DROP PROCEDURE IF EXISTS UpdateParamTableIndexes;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_plugin_param table
|
||||
-- ========================================
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE UpdatePluginParamTableIndexes()
|
||||
BEGIN
|
||||
DECLARE table_exists INT;
|
||||
|
||||
SELECT COUNT(*) INTO table_exists
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'hzb_plugin_param';
|
||||
|
||||
IF table_exists = 1 THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_plugin_param'
|
||||
AND INDEX_NAME = 'idx_hzb_plugin_param_plugin_metadata_id') THEN
|
||||
SET @drop_sql = 'DROP INDEX idx_hzb_plugin_param_plugin_metadata_id ON hzb_plugin_param';
|
||||
PREPARE stmt FROM @drop_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
END IF;
|
||||
|
||||
-- Create new index if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_plugin_param'
|
||||
AND INDEX_NAME = 'idx_hzb_plugin_param_plugin_metadata_id') THEN
|
||||
CREATE INDEX idx_hzb_plugin_param_plugin_metadata_id ON hzb_plugin_param(plugin_metadata_id);
|
||||
END IF;
|
||||
|
||||
-- Drop old unique constraint if exists
|
||||
IF EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_plugin_param'
|
||||
AND CONSTRAINT_TYPE = 'UNIQUE'
|
||||
AND CONSTRAINT_NAME = 'uk_hzb_plugin_param_metadata_field') THEN
|
||||
SET @drop_sql = 'ALTER TABLE hzb_plugin_param DROP INDEX uk_hzb_plugin_param_metadata_field';
|
||||
PREPARE stmt FROM @drop_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
END IF;
|
||||
|
||||
-- Create new unique constraint if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'hzb_plugin_param'
|
||||
AND CONSTRAINT_TYPE = 'UNIQUE'
|
||||
AND CONSTRAINT_NAME = 'uk_hzb_plugin_param_metadata_field') THEN
|
||||
ALTER TABLE hzb_plugin_param
|
||||
ADD CONSTRAINT uk_hzb_plugin_param_metadata_field
|
||||
UNIQUE (plugin_metadata_id, field);
|
||||
END IF;
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
CALL UpdatePluginParamTableIndexes();
|
||||
DROP PROCEDURE IF EXISTS UpdatePluginParamTableIndexes;
|
||||
|
||||
COMMIT;
|
||||
+229
-3
@@ -62,14 +62,240 @@ BEGIN
|
||||
UPDATE hzb_history SET instance = NULL;
|
||||
ALTER TABLE hzb_history ALTER COLUMN instance TYPE VARCHAR(255);
|
||||
END IF;
|
||||
|
||||
|
||||
UPDATE hzb_history h
|
||||
SET instance = m.instance
|
||||
FROM hzb_monitor m
|
||||
WHERE h.monitor_id = m.id;
|
||||
|
||||
|
||||
ALTER TABLE hzb_history DROP COLUMN monitor_id;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
commit;
|
||||
-- ========================================
|
||||
-- hzb_alert_define_monitor_bind table
|
||||
-- ========================================
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'hzb_alert_define_monitor_bind') THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_alert_define_monitor_bind' AND indexname = 'index_alert_define_monitor') THEN
|
||||
DROP INDEX IF EXISTS index_alert_define_monitor;
|
||||
END IF;
|
||||
|
||||
-- Create new indexes if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_alert_define_monitor_bind' AND indexname = 'idx_alert_define_id') THEN
|
||||
CREATE INDEX idx_alert_define_id ON hzb_alert_define_monitor_bind(alert_define_id);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_alert_define_monitor_bind' AND indexname = 'idx_monitor_id') THEN
|
||||
CREATE INDEX idx_monitor_id ON hzb_alert_define_monitor_bind(monitor_id);
|
||||
END IF;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_collector_monitor_bind table
|
||||
-- ========================================
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'hzb_collector_monitor_bind') THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_collector_monitor_bind' AND indexname = 'index_collector_monitor') THEN
|
||||
DROP INDEX IF EXISTS index_collector_monitor;
|
||||
END IF;
|
||||
|
||||
-- Create new indexes if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_collector_monitor_bind' AND indexname = 'idx_collector_monitor_collector') THEN
|
||||
CREATE INDEX idx_collector_monitor_collector ON hzb_collector_monitor_bind(collector);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_collector_monitor_bind' AND indexname = 'idx_collector_monitor_monitor_id') THEN
|
||||
CREATE INDEX idx_collector_monitor_monitor_id ON hzb_collector_monitor_bind(monitor_id);
|
||||
END IF;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_monitor table
|
||||
-- ========================================
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'hzb_monitor') THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_monitor' AND indexname = 'monitor_query_index') THEN
|
||||
DROP INDEX IF EXISTS monitor_query_index;
|
||||
END IF;
|
||||
|
||||
-- Create new indexes if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_monitor' AND indexname = 'idx_hzb_monitor_app') THEN
|
||||
CREATE INDEX idx_hzb_monitor_app ON hzb_monitor(app);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_monitor' AND indexname = 'idx_hzb_monitor_instance') THEN
|
||||
CREATE INDEX idx_hzb_monitor_instance ON hzb_monitor(instance);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_monitor' AND indexname = 'idx_hzb_monitor_name') THEN
|
||||
CREATE INDEX idx_hzb_monitor_name ON hzb_monitor(name);
|
||||
END IF;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_monitor_bind table
|
||||
-- ========================================
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'hzb_monitor_bind') THEN
|
||||
-- Create new index if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_monitor_bind' AND indexname = 'index_monitor_bind') THEN
|
||||
CREATE INDEX index_monitor_bind ON hzb_monitor_bind(biz_id);
|
||||
END IF;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_status_page_incident_component_bind table
|
||||
-- Special handling: component_id might have auto-created index from FK
|
||||
-- ========================================
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'hzb_status_page_incident_component_bind') THEN
|
||||
-- Check if component_id column already has any index, create if not
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_indexes
|
||||
WHERE tablename = 'hzb_status_page_incident_component_bind'
|
||||
AND indexdef LIKE '%component_id%'
|
||||
AND indexname NOT LIKE '%_pkey'
|
||||
) THEN
|
||||
CREATE INDEX idx_incident_component_component_id ON hzb_status_page_incident_component_bind(component_id);
|
||||
END IF;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_push_metrics table
|
||||
-- ========================================
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'hzb_push_metrics') THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_push_metrics' AND indexname = 'push_query_index') THEN
|
||||
DROP INDEX IF EXISTS push_query_index;
|
||||
END IF;
|
||||
|
||||
-- Create new indexes if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_push_metrics' AND indexname = 'idx_push_metrics_monitor_id') THEN
|
||||
CREATE INDEX idx_push_metrics_monitor_id ON hzb_push_metrics(monitor_id);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_push_metrics' AND indexname = 'idx_push_metrics_time') THEN
|
||||
CREATE INDEX idx_push_metrics_time ON hzb_push_metrics(time);
|
||||
END IF;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_history table
|
||||
-- ========================================
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'hzb_history') THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_history' AND indexname = 'history_query_index') THEN
|
||||
DROP INDEX IF EXISTS history_query_index;
|
||||
END IF;
|
||||
|
||||
-- Create new indexes if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_history' AND indexname = 'idx_hzb_history_instance') THEN
|
||||
CREATE INDEX idx_hzb_history_instance ON hzb_history(instance);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_history' AND indexname = 'idx_hzb_history_app') THEN
|
||||
CREATE INDEX idx_hzb_history_app ON hzb_history(app);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_history' AND indexname = 'idx_hzb_history_metrics') THEN
|
||||
CREATE INDEX idx_hzb_history_metrics ON hzb_history(metrics);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_history' AND indexname = 'idx_hzb_history_metric') THEN
|
||||
CREATE INDEX idx_hzb_history_metric ON hzb_history(metric);
|
||||
END IF;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_param table
|
||||
-- ========================================
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'hzb_param') THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_param' AND indexname = 'idx_hzb_param_monitor_id') THEN
|
||||
DROP INDEX IF EXISTS idx_hzb_param_monitor_id;
|
||||
END IF;
|
||||
|
||||
-- Create new index if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_param' AND indexname = 'idx_hzb_param_monitor_id') THEN
|
||||
CREATE INDEX idx_hzb_param_monitor_id ON hzb_param(monitor_id);
|
||||
END IF;
|
||||
|
||||
-- Drop old unique constraint if exists
|
||||
IF EXISTS (SELECT 1 FROM information_schema.table_constraints
|
||||
WHERE table_name = 'hzb_param'
|
||||
AND constraint_type = 'UNIQUE'
|
||||
AND constraint_name = 'uk_hzb_param_monitor_field') THEN
|
||||
ALTER TABLE hzb_param DROP CONSTRAINT IF EXISTS uk_hzb_param_monitor_field;
|
||||
END IF;
|
||||
|
||||
-- Create new unique constraint if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM information_schema.table_constraints
|
||||
WHERE table_name = 'hzb_param'
|
||||
AND constraint_type = 'UNIQUE'
|
||||
AND constraint_name = 'uk_hzb_param_monitor_field') THEN
|
||||
ALTER TABLE hzb_param
|
||||
ADD CONSTRAINT uk_hzb_param_monitor_field
|
||||
UNIQUE (monitor_id, field);
|
||||
END IF;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_plugin_param table
|
||||
-- ========================================
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'hzb_plugin_param') THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_plugin_param' AND indexname = 'idx_hzb_plugin_param_plugin_metadata_id') THEN
|
||||
DROP INDEX IF EXISTS idx_hzb_plugin_param_plugin_metadata_id;
|
||||
END IF;
|
||||
|
||||
-- Create new index if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_plugin_param' AND indexname = 'idx_hzb_plugin_param_plugin_metadata_id') THEN
|
||||
CREATE INDEX idx_hzb_plugin_param_plugin_metadata_id ON hzb_plugin_param(plugin_metadata_id);
|
||||
END IF;
|
||||
|
||||
-- Drop old unique constraint if exists
|
||||
IF EXISTS (SELECT 1 FROM information_schema.table_constraints
|
||||
WHERE table_name = 'hzb_plugin_param'
|
||||
AND constraint_type = 'UNIQUE'
|
||||
AND constraint_name = 'uk_hzb_plugin_param_metadata_field') THEN
|
||||
ALTER TABLE hzb_plugin_param DROP CONSTRAINT IF EXISTS uk_hzb_plugin_param_metadata_field;
|
||||
END IF;
|
||||
|
||||
-- Create new unique constraint if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM information_schema.table_constraints
|
||||
WHERE table_name = 'hzb_plugin_param'
|
||||
AND constraint_type = 'UNIQUE'
|
||||
AND constraint_name = 'uk_hzb_plugin_param_metadata_field') THEN
|
||||
ALTER TABLE hzb_plugin_param
|
||||
ADD CONSTRAINT uk_hzb_plugin_param_metadata_field
|
||||
UNIQUE (plugin_metadata_id, field);
|
||||
END IF;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
COMMIT;
|
||||
|
||||
-247
@@ -1,247 +0,0 @@
|
||||
-- Licensed to the Apache Software Foundation (ASF) under one
|
||||
-- or more contributor license agreements. See the NOTICE file
|
||||
-- distributed with this work for additional information
|
||||
-- regarding copyright ownership. The ASF licenses this file
|
||||
-- to you under the Apache License, Version 2.0 (the
|
||||
-- "License"); you may not use this file except in compliance
|
||||
-- with the License. You may obtain a copy of the License at
|
||||
--
|
||||
-- http://www.apache.org/licenses/LICENSE-2.0
|
||||
--
|
||||
-- Unless required by applicable law or agreed to in writing,
|
||||
-- software distributed under the License is distributed on an
|
||||
-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
||||
-- or implied. See the License for the specific language
|
||||
-- governing permissions and limitations
|
||||
-- under the License.
|
||||
|
||||
-- Ensure every SQL can rerun without error
|
||||
-- This migration updates indexes to match the entity annotations
|
||||
|
||||
-- ========================================
|
||||
-- hzb_alert_define_monitor_bind table
|
||||
-- ========================================
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'hzb_alert_define_monitor_bind') THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_alert_define_monitor_bind' AND indexname = 'index_alert_define_monitor') THEN
|
||||
DROP INDEX IF EXISTS index_alert_define_monitor;
|
||||
END IF;
|
||||
|
||||
-- Create new indexes if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_alert_define_monitor_bind' AND indexname = 'idx_alert_define_id') THEN
|
||||
CREATE INDEX idx_alert_define_id ON hzb_alert_define_monitor_bind(alert_define_id);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_alert_define_monitor_bind' AND indexname = 'idx_monitor_id') THEN
|
||||
CREATE INDEX idx_monitor_id ON hzb_alert_define_monitor_bind(monitor_id);
|
||||
END IF;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_collector_monitor_bind table
|
||||
-- ========================================
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'hzb_collector_monitor_bind') THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_collector_monitor_bind' AND indexname = 'index_collector_monitor') THEN
|
||||
DROP INDEX IF EXISTS index_collector_monitor;
|
||||
END IF;
|
||||
|
||||
-- Create new indexes if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_collector_monitor_bind' AND indexname = 'idx_collector_monitor_collector') THEN
|
||||
CREATE INDEX idx_collector_monitor_collector ON hzb_collector_monitor_bind(collector);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_collector_monitor_bind' AND indexname = 'idx_collector_monitor_monitor_id') THEN
|
||||
CREATE INDEX idx_collector_monitor_monitor_id ON hzb_collector_monitor_bind(monitor_id);
|
||||
END IF;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_monitor table
|
||||
-- ========================================
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'hzb_monitor') THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_monitor' AND indexname = 'monitor_query_index') THEN
|
||||
DROP INDEX IF EXISTS monitor_query_index;
|
||||
END IF;
|
||||
|
||||
-- Create new indexes if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_monitor' AND indexname = 'idx_hzb_monitor_app') THEN
|
||||
CREATE INDEX idx_hzb_monitor_app ON hzb_monitor(app);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_monitor' AND indexname = 'idx_hzb_monitor_instance') THEN
|
||||
CREATE INDEX idx_hzb_monitor_instance ON hzb_monitor(instance);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_monitor' AND indexname = 'idx_hzb_monitor_name') THEN
|
||||
CREATE INDEX idx_hzb_monitor_name ON hzb_monitor(name);
|
||||
END IF;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_monitor_bind table
|
||||
-- ========================================
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'hzb_monitor_bind') THEN
|
||||
-- Create new index if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_monitor_bind' AND indexname = 'index_monitor_bind') THEN
|
||||
CREATE INDEX index_monitor_bind ON hzb_monitor_bind(biz_id);
|
||||
END IF;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_status_page_incident_component_bind table
|
||||
-- Special handling: component_id might have auto-created index from FK
|
||||
-- ========================================
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'hzb_status_page_incident_component_bind') THEN
|
||||
-- Check if component_id column already has any index, create if not
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_indexes
|
||||
WHERE tablename = 'hzb_status_page_incident_component_bind'
|
||||
AND indexdef LIKE '%component_id%'
|
||||
AND indexname NOT LIKE '%_pkey'
|
||||
) THEN
|
||||
CREATE INDEX idx_incident_component_component_id ON hzb_status_page_incident_component_bind(component_id);
|
||||
END IF;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_push_metrics table
|
||||
-- ========================================
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'hzb_push_metrics') THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_push_metrics' AND indexname = 'push_query_index') THEN
|
||||
DROP INDEX IF EXISTS push_query_index;
|
||||
END IF;
|
||||
|
||||
-- Create new indexes if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_push_metrics' AND indexname = 'idx_push_metrics_monitor_id') THEN
|
||||
CREATE INDEX idx_push_metrics_monitor_id ON hzb_push_metrics(monitor_id);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_push_metrics' AND indexname = 'idx_push_metrics_time') THEN
|
||||
CREATE INDEX idx_push_metrics_time ON hzb_push_metrics(time);
|
||||
END IF;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_history table
|
||||
-- ========================================
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'hzb_history') THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_history' AND indexname = 'history_query_index') THEN
|
||||
DROP INDEX IF EXISTS history_query_index;
|
||||
END IF;
|
||||
|
||||
-- Create new indexes if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_history' AND indexname = 'idx_hzb_history_instance') THEN
|
||||
CREATE INDEX idx_hzb_history_instance ON hzb_history(instance);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_history' AND indexname = 'idx_hzb_history_app') THEN
|
||||
CREATE INDEX idx_hzb_history_app ON hzb_history(app);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_history' AND indexname = 'idx_hzb_history_metrics') THEN
|
||||
CREATE INDEX idx_hzb_history_metrics ON hzb_history(metrics);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_history' AND indexname = 'idx_hzb_history_metric') THEN
|
||||
CREATE INDEX idx_hzb_history_metric ON hzb_history(metric);
|
||||
END IF;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_param table
|
||||
-- ========================================
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'hzb_param') THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_param' AND indexname = 'idx_hzb_param_monitor_id') THEN
|
||||
DROP INDEX IF EXISTS idx_hzb_param_monitor_id;
|
||||
END IF;
|
||||
|
||||
-- Create new index if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_param' AND indexname = 'idx_hzb_param_monitor_id') THEN
|
||||
CREATE INDEX idx_hzb_param_monitor_id ON hzb_param(monitor_id);
|
||||
END IF;
|
||||
|
||||
-- Drop old unique constraint if exists
|
||||
IF EXISTS (SELECT 1 FROM information_schema.table_constraints
|
||||
WHERE table_name = 'hzb_param'
|
||||
AND constraint_type = 'UNIQUE'
|
||||
AND constraint_name = 'uk_hzb_param_monitor_field') THEN
|
||||
ALTER TABLE hzb_param DROP CONSTRAINT IF EXISTS uk_hzb_param_monitor_field;
|
||||
END IF;
|
||||
|
||||
-- Create new unique constraint if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM information_schema.table_constraints
|
||||
WHERE table_name = 'hzb_param'
|
||||
AND constraint_type = 'UNIQUE'
|
||||
AND constraint_name = 'uk_hzb_param_monitor_field') THEN
|
||||
ALTER TABLE hzb_param
|
||||
ADD CONSTRAINT uk_hzb_param_monitor_field
|
||||
UNIQUE (monitor_id, field);
|
||||
END IF;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- ========================================
|
||||
-- hzb_plugin_param table
|
||||
-- ========================================
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'hzb_plugin_param') THEN
|
||||
-- Drop old index if exists
|
||||
IF EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_plugin_param' AND indexname = 'idx_hzb_plugin_param_plugin_metadata_id') THEN
|
||||
DROP INDEX IF EXISTS idx_hzb_plugin_param_plugin_metadata_id;
|
||||
END IF;
|
||||
|
||||
-- Create new index if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM pg_indexes WHERE tablename = 'hzb_plugin_param' AND indexname = 'idx_hzb_plugin_param_plugin_metadata_id') THEN
|
||||
CREATE INDEX idx_hzb_plugin_param_plugin_metadata_id ON hzb_plugin_param(plugin_metadata_id);
|
||||
END IF;
|
||||
|
||||
-- Drop old unique constraint if exists
|
||||
IF EXISTS (SELECT 1 FROM information_schema.table_constraints
|
||||
WHERE table_name = 'hzb_plugin_param'
|
||||
AND constraint_type = 'UNIQUE'
|
||||
AND constraint_name = 'uk_hzb_plugin_param_metadata_field') THEN
|
||||
ALTER TABLE hzb_plugin_param DROP CONSTRAINT IF EXISTS uk_hzb_plugin_param_metadata_field;
|
||||
END IF;
|
||||
|
||||
-- Create new unique constraint if not exist
|
||||
IF NOT EXISTS (SELECT 1 FROM information_schema.table_constraints
|
||||
WHERE table_name = 'hzb_plugin_param'
|
||||
AND constraint_type = 'UNIQUE'
|
||||
AND constraint_name = 'uk_hzb_plugin_param_metadata_field') THEN
|
||||
ALTER TABLE hzb_plugin_param
|
||||
ADD CONSTRAINT uk_hzb_plugin_param_metadata_field
|
||||
UNIQUE (plugin_metadata_id, field);
|
||||
END IF;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
COMMIT;
|
||||
Reference in New Issue
Block a user