/* EQEmu: EQEmulator Copyright (C) 2001-2026 EQEmu Development Team This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #pragma once #include "common/database/database_update.h" #include std::vector manifest_entries_custom = { ManifestEntry{ .version = 1, .description = "2025_05_16_new_database_check_test", .check = "SHOW TABLES LIKE 'new_table'", .condition = "empty", .match = "", .sql = R"( CREATE TABLE `new_table` ( `id` int NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ); )", .content_schema_update = false, }, // Used for testing // ManifestEntry{ // .version = 9229, // .description = "new_database_check_test", // .check = "SHOW TABLES LIKE 'new_table'", // .condition = "empty", // .match = "", // .sql = R"( //CREATE TABLE `new_table` ( // `id` int NOT NULL AUTO_INCREMENT, // PRIMARY KEY (`id`) //); //CREATE TABLE `new_table1` ( // `id` int NOT NULL AUTO_INCREMENT, // PRIMARY KEY (`id`) //); //CREATE TABLE `new_table2` ( // `id` int NOT NULL AUTO_INCREMENT, // PRIMARY KEY (`id`) //); //CREATE TABLE `new_table3` ( // `id` int NOT NULL AUTO_INCREMENT, // PRIMARY KEY (`id`) //); //)", // } }; // see struct definitions for what each field does // struct ManifestEntry { // int version{}; // database version of the migration // std::string description{}; // description of the migration ex: "add_new_table" or "add_index_to_table" // std::string check{}; // query that checks against the condition // std::string condition{}; // condition or "match_type" - Possible values [contains|match|missing|empty|not_empty] // std::string match{}; // match field that is not always used, but works in conjunction with "condition" values [missing|match|contains] // std::string sql{}; // the SQL DDL that gets ran when the condition is true // };