diff --git a/common.php b/common.php index 0f675753..66489235 100644 --- a/common.php +++ b/common.php @@ -27,7 +27,7 @@ if (version_compare(phpversion(), '8.1', '<')) die('PHP version 8.1 or higher is const MYAAC = true; const MYAAC_VERSION = '1.0.1'; -const DATABASE_VERSION = 42; +const DATABASE_VERSION = 43; const TABLE_PREFIX = 'myaac_'; define('START_TIME', microtime(true)); define('MYAAC_OS', stripos(PHP_OS, 'WIN') === 0 ? 'WINDOWS' : (strtoupper(PHP_OS) === 'DARWIN' ? 'MAC' : 'LINUX')); diff --git a/install/includes/schema.sql b/install/includes/schema.sql index 91853e07..21409c00 100644 --- a/install/includes/schema.sql +++ b/install/includes/schema.sql @@ -1,4 +1,4 @@ -SET @myaac_database_version = 42; +SET @myaac_database_version = 43; CREATE TABLE `myaac_account_actions` ( diff --git a/install/tools/5-database.php b/install/tools/5-database.php index ff0bcbbb..395492ee 100644 --- a/install/tools/5-database.php +++ b/install/tools/5-database.php @@ -156,9 +156,14 @@ if ($db->hasTable('guilds')) { } if (!$db->hasColumn('guilds', 'description')) { - if (query("ALTER TABLE `guilds` ADD `description` TEXT NOT NULL;")) + if (query("ALTER TABLE `guilds` ADD `description` VARCHAR(5000) NOT NULL DEFAULT '';")) success($locale['step_database_adding_field'] . ' guilds.description...'); } + else { + if (query("ALTER TABLE `guilds` MODIFY `description` VARCHAR(5000) NOT NULL DEFAULT '';")) { + success($locale['step_database_modifying_field'] . ' guilds.description...'); + } + } if ($db->hasColumn('guilds', 'logo_gfx_name')) { if (query("ALTER TABLE `guilds` CHANGE `logo_gfx_name` `logo_name` VARCHAR( 255 ) NOT NULL DEFAULT 'default.gif';")) { @@ -197,9 +202,14 @@ if ($db->hasTable('players')) { } if (!$db->hasColumn('players', 'comment')) { - if (query("ALTER TABLE `players` ADD `comment` TEXT NOT NULL;")) + if (query("ALTER TABLE `players` ADD `comment` VARCHAR(5000) NOT NULL DEFAULT '';")) success($locale['step_database_adding_field'] . ' players.comment...'); } + else { + if (query("ALTER TABLE `players` MODIFY `comment` VARCHAR(5000) NOT NULL DEFAULT '';")) { + success($locale['step_database_modifying_field'] . ' players.comment...'); + } + } if ($db->hasColumn('players', 'rank_id')) { if (query("ALTER TABLE players MODIFY `rank_id` INT(11) NOT NULL DEFAULT 0;")) diff --git a/system/migrations/43.php b/system/migrations/43.php new file mode 100644 index 00000000..2601f265 --- /dev/null +++ b/system/migrations/43.php @@ -0,0 +1,20 @@ +query("UPDATE guilds set description = '' WHERE description is NULL;"); // prevent truncate error when column is NULL + $db->modifyColumn('guilds', 'description', "VARCHAR(5000) NOT NULL DEFAULT ''"); + + $db->query("UPDATE players set comment = '' WHERE comment is NULL;"); + $db->modifyColumn('players', 'comment', "VARCHAR(5000) NOT NULL DEFAULT ''"); +}; + +$down = function () use ($db) { + $db->modifyColumn('guilds', 'description', "TEXT NOT NULL"); + $db->modifyColumn('players', 'comment', "TEXT NOT NULL"); +}; +