I can tell you where that 1054 comes from…
(all related to the MySQL scripts of the Community Edition only, leaving out the beta versions!)
The table org_saml_config was newly introduced with the 10.x version.
seafile-server-10.0.1/upgrade/sql/10.0.0/mysql/seahub.sql (the sql upgrade statements for v10 contained with the 10.0.1 package) contains this:
CREATE TABLE IF NOT EXISTS `org_saml_config` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`org_id` int(11) NOT NULL,
`metadata_url` longtext NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `org_id` (`org_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
seafile-server-11.0.3/upgrade/sql/10.0.0/mysql/seahub.sql (the sql upgrade statements for v10 contained with the 11.0.3 package; also identical for 11.0.4 and 11.0.5) contains this:
CREATE TABLE IF NOT EXISTS `org_saml_config` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`org_id` int(11) NOT NULL,
`metadata_url` longtext NOT NULL,
`domain` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `org_id` (`org_id`),
UNIQUE KEY `domain` (`domain`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
This means that any operator who upgraded from 9.x (or earlier) to 10.0.1 (or did an initial install on 10.0.1) will have that table WITHOUT the domain column.
Whereas any operator upgrading from 9.x (or earlier) to 11.0.x will have that table WITH the domain column.
seafile-server-11.0.3/upgrade/sql/11.0.0/mysql/seahub.sql (the sql upgrade statements for v11 contained with the 11.0.3 package; also identical for 11.0.4 and 11.0.5) contains this:
ALTER TABLE `org_saml_config` CHANGE domain domain varchar(255) DEFAULT NULL;
This assumes that the domain column is already present, which is NOT the case for operators updating from 10.0.1 - all of them will fall into this pit!
Only solution for this is to manually create the column by
ALTER TABLE `org_saml_config` ADD COLUMN `domain` varchar(255) NOT NULL;
and then repeating
ALTER TABLE `org_saml_config` CHANGE domain domain varchar(255) DEFAULT NULL;
Regarding the IF NOT EXISTS issue: I remember to have read somewhere that the original MySQL does not support this everywhere for DDL statements, whereas the MariaDB fork supports this for more statements.
I assume that the SeaFile developers only use and test their software on MariaDB.
Sorry for not putting the SQL statements into code blocks, but I’m failing to get the formatting for the apostrophes correct inside this answer form…