@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator

Diviner: Remove ancient details from "Managing Storage Adjustments"

Summary:
<tl;dr>. Remove too many details more relevant 11 years ago in the "Managing Storage Adjustments" Diviner article. Impatience is my main character trait.

MySQL 5.5.3 offering utf8mb4 was released 2010-03-24 per https://web.archive.org/web/20200121182001/https://dev.mysql.com/doc/relnotes/mysql/5.5/en/

Test Plan:
* Run `./bin/diviner generate`
* Go to http://phorge.localhost/book/phorge/article/storage_adjust/

Reviewers: O1 Blessed Committers, mainframe98

Reviewed By: O1 Blessed Committers, mainframe98

Subscribers: tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Differential Revision: https://we.phorge.it/D26281

+11 -21
+11 -21
src/docs/user/configuration/storage_adjust.diviner
··· 86 86 History and Rationale 87 87 ===================== 88 88 89 - The primary motivation for the adjustment workflow is MySQL's handling of 90 - unicode character sets. Before MySQL 5.5, MySQL supports a character set called 91 - `utf8`. However, this character set can not store 4-byte unicode characters 92 - (including emoji). Inserting 4-byte characters into a `utf8` column truncates 93 - the data. 94 - 95 - With MySQL 5.5, a new `utf8mb4` character set was introduced. This character 96 - set can safely store 4-byte unicode characters. 89 + The primary motivation for the adjustment workflow was MySQL's handling of 90 + unicode character sets. 91 + MySQL 5.5.3 (released March 2010) introduced a new `utf8mb4` character set. 92 + This character set allows to safely store 4-byte unicode characters. 97 93 98 - The adjustment workflow allows us to alter the schema to primarily use 99 - `binary` character sets on older MySQL, and primarily use `utf8mb4` character 100 - sets on newer MySQL. The net effect is that Phorge works consistently and 101 - can store 4-byte unicode characters regardless of the MySQL version. Under 102 - newer MySQL, we can also take advantage of the better collation rules the 103 - `utf8mb4` character set offers. 94 + The adjustment workflow allows us to primarily use `utf8mb4` character sets. 104 95 105 - The adjustment workflow was introduced in November 2014. If your install 106 - predates its introduction, your first adjustment may take a long time (we must 107 - convert all of the data out of `utf8` and into the appropriate character set). 108 96 If your install was set up after November 2014, adjustments should generally 109 97 be very minor and complete quickly, unless you perform a major MySQL update and 110 98 make new character sets available. 111 99 112 - If you plan to update MySQL from an older version to 5.5 or newer, it is 113 - advisable to update first, then run the adjustment workflow. If you adjust 114 - first, you'll need to adjust again after updating, so you'll end up spending 115 - twice as much time performing schemata adjustments. 100 + Only if your Phorge install predates November 2014 and you have not updated 101 + ever since, your first adjustment may take a long time (we must convert all of 102 + the data out of the `utf8` character set). 103 + 104 + If you plan to update MySQL from an old version (5.5.3 or older) to a recent 105 + version, it is advisable to update first, then run the adjustment workflow. 116 106 117 107 118 108 Troubleshooting