mirror of https://github.com/pixelfed/pixelfed
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
MySQL/MariaDB's utf8mb4_unicode_ci collation treats all characters outside the Basic Multilingual Plane as equal, conflating distinct same-length hashtags (e.g. Shavian vs cuneiform) on the unique name/slug indexes. Migrate the hashtags name/slug columns to utf8mb4_unicode_520_ci, which differentiates supplementary-plane characters. Improvements over the original PR: - Use an explicit ALTER ... MODIFY, since Laravel's fluent ->change() emits no collation change on MySQL/MariaDB and silently no-ops. - Match both 'mysql' and 'mariadb' drivers (Laravel 11+ reports MariaDB as a distinct driver, so a mysql-only check would skip the fix on MariaDB). - Provide an accurate, reversible down() and preserve NOT NULL + unique keys. Add feature tests covering the no-op path on non-MySQL drivers and, on MySQL/MariaDB, that distinct BMP-outside hashtags coexist while same-slug and case-insensitive dedup still work. |
4 weeks ago | |
|---|---|---|
| .. | ||
| factories | 4 weeks ago | |
| migrations | 4 weeks ago | |
| seeds | ||
| .gitignore | ||