summaryrefslogtreecommitdiffstats
path: root/src/database/sqlite/sqlite_db_migration.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/database/sqlite/sqlite_db_migration.c (renamed from database/sqlite/sqlite_db_migration.c)60
1 files changed, 49 insertions, 11 deletions
diff --git a/database/sqlite/sqlite_db_migration.c b/src/database/sqlite/sqlite_db_migration.c
index 29da6c249..0131c4bf6 100644
--- a/database/sqlite/sqlite_db_migration.c
+++ b/src/database/sqlite/sqlite_db_migration.c
@@ -153,17 +153,36 @@ const char *database_migrate_v13_v14[] = {
NULL
};
+const char *database_migrate_v16_v17[] = {
+ "ALTER TABLE alert_hash ADD time_group_condition INT",
+ "ALTER TABLE alert_hash ADD time_group_value DOUBLE",
+ "ALTER TABLE alert_hash ADD dims_group INT",
+ "ALTER TABLE alert_hash ADD data_source INT",
+ NULL
+};
+
+// Note: Same as database_migrate_v16_v17. This is not wrong
+// Do additional migration to handle agents that created wrong alert_hash table
+const char *database_migrate_v17_v18[] = {
+ "ALTER TABLE alert_hash ADD time_group_condition INT",
+ "ALTER TABLE alert_hash ADD time_group_value DOUBLE",
+ "ALTER TABLE alert_hash ADD dims_group INT",
+ "ALTER TABLE alert_hash ADD data_source INT",
+ NULL
+};
+
+
static int do_migration_v1_v2(sqlite3 *database)
{
if (table_exists_in_database(database, "host") && !column_exists_in_table(database, "host", "hops"))
- return init_database_batch(database, &database_migrate_v1_v2[0]);
+ return init_database_batch(database, &database_migrate_v1_v2[0], "meta_migrate");
return 0;
}
static int do_migration_v2_v3(sqlite3 *database)
{
if (table_exists_in_database(database, "host") && !column_exists_in_table(database, "host", "memory_mode"))
- return init_database_batch(database, &database_migrate_v2_v3[0]);
+ return init_database_batch(database, &database_migrate_v2_v3[0], "meta_migrate");
return 0;
}
@@ -198,12 +217,12 @@ static int do_migration_v3_v4(sqlite3 *database)
static int do_migration_v4_v5(sqlite3 *database)
{
- return init_database_batch(database, &database_migrate_v4_v5[0]);
+ return init_database_batch(database, &database_migrate_v4_v5[0], "meta_migrate");
}
static int do_migration_v5_v6(sqlite3 *database)
{
- return init_database_batch(database, &database_migrate_v5_v6[0]);
+ return init_database_batch(database, &database_migrate_v5_v6[0], "meta_migrate");
}
static int do_migration_v6_v7(sqlite3 *database)
@@ -341,14 +360,14 @@ static int do_migration_v8_v9(sqlite3 *database)
static int do_migration_v9_v10(sqlite3 *database)
{
if (table_exists_in_database(database, "alert_hash") && !column_exists_in_table(database, "alert_hash", "chart_labels"))
- return init_database_batch(database, &database_migrate_v9_v10[0]);
+ return init_database_batch(database, &database_migrate_v9_v10[0], "meta_migrate");
return 0;
}
static int do_migration_v10_v11(sqlite3 *database)
{
if (table_exists_in_database(database, "health_log") && !column_exists_in_table(database, "health_log", "chart_name"))
- return init_database_batch(database, &database_migrate_v10_v11[0]);
+ return init_database_batch(database, &database_migrate_v10_v11[0], "meta_migrate");
return 0;
}
@@ -360,7 +379,7 @@ static int do_migration_v11_v12(sqlite3 *database)
if (table_exists_in_database(database, "health_log_detail") && !column_exists_in_table(database, "health_log_detail", "summary") &&
table_exists_in_database(database, "alert_hash") && !column_exists_in_table(database, "alert_hash", "summary"))
- rc = init_database_batch(database, &database_migrate_v11_v12[0]);
+ rc = init_database_batch(database, &database_migrate_v11_v12[0], "meta_migrate");
if (!rc)
sqlite3_exec_monitored(database, MIGR_11_12_UPD_HEALTH_LOG_DETAIL, 0, 0, NULL);
@@ -430,17 +449,34 @@ static int do_migration_v15_v16(sqlite3 *database)
return 0;
}
+static int do_migration_v16_v17(sqlite3 *database)
+{
+ if (table_exists_in_database(database, "alert_hash") && !column_exists_in_table(database, "alert_hash", "time_group_condition"))
+ return init_database_batch(database, &database_migrate_v16_v17[0], "meta_migrate");
+
+ return 0;
+}
+
+static int do_migration_v17_v18(sqlite3 *database)
+{
+ if (table_exists_in_database(database, "alert_hash") && !column_exists_in_table(database, "alert_hash", "time_group_condition"))
+ return init_database_batch(database, &database_migrate_v17_v18[0], "meta_migrate");
+
+ return 0;
+}
+
+
static int do_migration_v12_v13(sqlite3 *database)
{
int rc = 0;
if (table_exists_in_database(database, "health_log_detail") && !column_exists_in_table(database, "health_log_detail", "summary")) {
- rc = init_database_batch(database, &database_migrate_v12_v13_detail[0]);
+ rc = init_database_batch(database, &database_migrate_v12_v13_detail[0], "meta_migrate");
sqlite3_exec_monitored(database, MIGR_11_12_UPD_HEALTH_LOG_DETAIL, 0, 0, NULL);
}
if (table_exists_in_database(database, "alert_hash") && !column_exists_in_table(database, "alert_hash", "summary"))
- rc = init_database_batch(database, &database_migrate_v12_v13_hash[0]);
+ rc = init_database_batch(database, &database_migrate_v12_v13_hash[0], "meta_migrate");
return rc;
}
@@ -448,7 +484,7 @@ static int do_migration_v12_v13(sqlite3 *database)
static int do_migration_v13_v14(sqlite3 *database)
{
if (table_exists_in_database(database, "host") && !column_exists_in_table(database, "host", "last_connected"))
- return init_database_batch(database, &database_migrate_v13_v14[0]);
+ return init_database_batch(database, &database_migrate_v13_v14[0], "meta_migrate");
return 0;
}
@@ -466,7 +502,7 @@ const char *database_ml_migrate_v1_v2[] = {
static int do_ml_migration_v1_v2(sqlite3 *database)
{
if (get_auto_vaccum(database) != 2)
- return init_database_batch(database, &database_ml_migrate_v1_v2[0]);
+ return init_database_batch(database, &database_ml_migrate_v1_v2[0], "ml_migrate");
return 0;
}
@@ -527,6 +563,8 @@ DATABASE_FUNC_MIGRATION_LIST migration_action[] = {
{.name = "v13 to v14", .func = do_migration_v13_v14},
{.name = "v14 to v15", .func = do_migration_v14_v15},
{.name = "v15 to v16", .func = do_migration_v15_v16},
+ {.name = "v16 to v17", .func = do_migration_v16_v17},
+ {.name = "v17 to v18", .func = do_migration_v17_v18},
// the terminator of this array
{.name = NULL, .func = NULL}
};