From 216aaff844f68ba0136f0a6792ede22216926a43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Nov=C3=BD?= Date: Thu, 20 Jan 2022 22:53:55 +0100 Subject: [PATCH] Cleanup SQL CHARSET and COLLATE * Set same charset and collate for all tables * Recommends collate utf8mb4_0900_ai_ci which is MySQL default --- application/config/database.sample.php | 2 +- application/config/migration.php | 3 +- application/migrations/084_fix_collate.php | 41 ++++++++++++++++++++++ 3 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 application/migrations/084_fix_collate.php diff --git a/application/config/database.sample.php b/application/config/database.sample.php index 29626bda..630d6848 100644 --- a/application/config/database.sample.php +++ b/application/config/database.sample.php @@ -88,7 +88,7 @@ $db['default'] = array( 'cache_on' => FALSE, 'cachedir' => '', 'char_set' => 'utf8mb4', - 'dbcollat' => 'utf8mb4_general_ci', + 'dbcollat' => 'utf8mb4_0900_ai_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, diff --git a/application/config/migration.php b/application/config/migration.php index 08711578..19d8cfc5 100644 --- a/application/config/migration.php +++ b/application/config/migration.php @@ -21,8 +21,7 @@ $config['migration_enabled'] = TRUE; | be upgraded / downgraded to. | */ - -$config['migration_version'] = 83; +$config['migration_version'] = 84; /* |-------------------------------------------------------------------------- diff --git a/application/migrations/084_fix_collate.php b/application/migrations/084_fix_collate.php new file mode 100644 index 00000000..495828c0 --- /dev/null +++ b/application/migrations/084_fix_collate.php @@ -0,0 +1,41 @@ +config->item('table_name'), + 'adif_modes', + 'api', + 'cat', + 'config', + 'contest', + 'dxcc_entities', + 'dxcc_exceptions', + 'dxcc_prefixes', + 'eQSL_images', + 'iota', + 'lotw_certs', + 'migrations', + 'notes', + 'options', + 'qsl_images', + 'queries', + 'station_logbooks', + 'station_logbooks_relationship', + 'station_profile', + 'timezones', + 'users' + ); + foreach ($tables as $table) { + $this->db->query('ALTER TABLE ' . $table . ' CONVERT TO CHARACTER SET ' . $this->db->char_set . ' COLLATE ' . $this->db->dbcollat); + } + } + + public function down() + { + // Not Possible + } +}