Převod kódování databáze z UTF-8 mb3 na UTF-8 mb4
UTF-8 verze mb4 podporuje všechny nové emotikony. To umožní ukládát text s libovolnou emotikonou na jakékoliv místo v CRM. Databazé CRM historicky používá UTF-8 mb3. Je teda potřeba převést v databázi kódování na novější verzi mb4
Systémové požadavky
- MySQL 8.0.x - databázový server
- Před samotnou migrací nezapomeňte provést zálohu databáze!
Ruční převod
Pokud nechcete/nemůžete na serveru spustit náš automatizující skript, můžete využít příkazy níže. Doporučený postup pro převod na utf8mb4 z utf8mb3:
1 - Convert the database: ALTER DATABASE # CHARACTER SET = utf8mb4 COLLATE = utf8mb4_czech_ci;
2 - Convert each table: ALTER TABLE # CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_czech_ci;
Skript
Napsán v java shell skriptu. Skript si stáhněte k sobě na server, kde vám běží databáze.
Následně budete potřebovat znát cestu k nainstalované JAVĚ a cestu ke knihovně mysql pro JAVU.
(Tu nalezenete např. v instalačním balíčku intouch.war v adresáři WEB-APP/lib/mysql...jar)
mysql-connector-j-8.0.33.jar nebo mysql-connector-java-8.0.25.jar atp.
Před spuštěním je potřeba v něm nastavit:
1. cestu k javě a cestu ke MySQL java knihovně
#!/CESTA/bin/java --source 17 -cp /CESTA/mysql-connector-j-8.0.33.jar
2. proměnné pro připojení do MySQL
private static String MYSQL_HOST = "localhost";
private static int MYSQL_PORT = 3306;
private static String MYSQL_USER = "root";
private static String MYSQL_PASSWORD = "123456";
3. collation - pro cz je to utf8mb4_czech_ci, pro sk je to utf8mb4_slovak_ci atp.
private static String UTF8_COLLATE = "utf8mb4_czech_ci";
4. Spustit s parametrem název databáze.
pro převod databáze intouch např. ./MigrateDb intouch
skript vypisuje stav migrace a na konci doporučí mysqlcheck pro kontrolu.