On my instance metapixl.com the alt text for post was cut of after 191 characters. 191 chars is a hint that the colum type is set to varchar(191) whis is obviouly wrong if you want to store more than 191 chars inside it. Pixelfed stores the alt text to a posted picture in a colum named caption you can check the colums and types inside the mariadb interface.
MariaDB [pixelfed]> use pixelfed;
Database changed
MariaDB [pixelfed]> SHOW COLUMNS FROM media;
+-------------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+---------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| status_id | bigint(20) unsigned | YES | MUL | NULL | |
| profile_id | bigint(20) unsigned | YES | MUL | NULL | |
| user_id | bigint(20) unsigned | YES | MUL | NULL | |
| is_nsfw | tinyint(1) | NO | | 0 | |
| remote_media | tinyint(1) | NO | MUL | 0 | |
| original_sha256 | varchar(191) | YES | MUL | NULL | |
| optimized_sha256 | varchar(191) | YES | MUL | NULL | |
| media_path | varchar(191) | NO | | NULL | |
| thumbnail_path | varchar(191) | YES | | NULL | |
| cdn_url | text | YES | | NULL | |
| optimized_url | varchar(191) | YES | | NULL | |
| thumbnail_url | varchar(191) | YES | | NULL | |
| remote_url | varchar(191) | YES | | NULL | |
| caption | varchar(191) | YES | | NULL | |
| hls_path | varchar(191) | YES | | NULL | |
| order | tinyint(3) unsigned | NO | | 1 | |
| mime | varchar(191) | YES | MUL | NULL | |
| size | int(10) unsigned | YES | | NULL | |
| orientation | varchar(191) | YES | | NULL | |
| filter_name | varchar(191) | YES | | NULL | |
| filter_class | varchar(191) | YES | | NULL | |
| license | varchar(191) | YES | MUL | NULL | |
| processed_at | timestamp | YES | | NULL | |
| hls_transcoded_at | timestamp | YES | | NULL | |
| created_at | timestamp | YES | | NULL | |
| updated_at | timestamp | YES | | NULL | |
| deleted_at | timestamp | YES | MUL | NULL | |
| key | varchar(191) | YES | | NULL | |
| metadata | longtext | YES | | NULL | |
| version | tinyint(4) | NO | MUL | 1 | |
| blurhash | varchar(191) | YES | | NULL | |
| srcset | longtext | YES | | NULL | |
| width | int(10) unsigned | YES | | NULL | |
| height | int(10) unsigned | YES | | NULL | |
| skip_optimize | tinyint(1) | YES | MUL | NULL | |
| replicated_at | timestamp | YES | MUL | NULL | |
+-------------------+---------------------+------+-----+---------+----------------+
37 rows in set (0.001 sec)
As you can see the type is set to varchar(191) so I changed it to text as it should be
MariaDB [pixelfed]> ALTER TABLE media MODIFY caption text;
Query OK, 1996326 rows affected (1 min 0.749 sec)
Records: 1996326 Duplicates: 0 Warnings: 0
MariaDB [pixelfed]> SHOW COLUMNS FROM media;
+-------------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+---------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| status_id | bigint(20) unsigned | YES | MUL | NULL | |
| profile_id | bigint(20) unsigned | YES | MUL | NULL | |
| user_id | bigint(20) unsigned | YES | MUL | NULL | |
| is_nsfw | tinyint(1) | NO | | 0 | |
| remote_media | tinyint(1) | NO | MUL | 0 | |
| original_sha256 | varchar(191) | YES | MUL | NULL | |
| optimized_sha256 | varchar(191) | YES | MUL | NULL | |
| media_path | varchar(191) | NO | | NULL | |
| thumbnail_path | varchar(191) | YES | | NULL | |
| cdn_url | text | YES | | NULL | |
| optimized_url | varchar(191) | YES | | NULL | |
| thumbnail_url | varchar(191) | YES | | NULL | |
| remote_url | varchar(191) | YES | | NULL | |
| caption | text | YES | | NULL | |
| hls_path | varchar(191) | YES | | NULL | |
| order | tinyint(3) unsigned | NO | | 1 | |
| mime | varchar(191) | YES | MUL | NULL | |
| size | int(10) unsigned | YES | | NULL | |
| orientation | varchar(191) | YES | | NULL | |
| filter_name | varchar(191) | YES | | NULL | |
| filter_class | varchar(191) | YES | | NULL | |
| license | varchar(191) | YES | MUL | NULL | |
| processed_at | timestamp | YES | | NULL | |
| hls_transcoded_at | timestamp | YES | | NULL | |
| created_at | timestamp | YES | | NULL | |
| updated_at | timestamp | YES | | NULL | |
| deleted_at | timestamp | YES | MUL | NULL | |
| key | varchar(191) | YES | | NULL | |
| metadata | longtext | YES | | NULL | |
| version | tinyint(4) | NO | MUL | 1 | |
| blurhash | varchar(191) | YES | | NULL | |
| srcset | longtext | YES | | NULL | |
| width | int(10) unsigned | YES | | NULL | |
| height | int(10) unsigned | YES | | NULL | |
| skip_optimize | tinyint(1) | YES | MUL | NULL | |
| replicated_at | timestamp | YES | MUL | NULL | |
+-------------------+---------------------+------+-----+---------+----------------+
37 rows in set (0.001 sec)
As you can see, the type is converted from varchar(191) to text and it’s now possible to post pictures with alt text wirth max 2000 characters (again).
Never do those things without an actual backup!