Skip to content

OF-3239: Add MariaDB as a first-class supported database#3243

Open
guusdk wants to merge 1 commit intoigniterealtime:mainfrom
guusdk:OF-3239_MariaDB-support-introduction
Open

OF-3239: Add MariaDB as a first-class supported database#3243
guusdk wants to merge 1 commit intoigniterealtime:mainfrom
guusdk:OF-3239_MariaDB-support-introduction

Conversation

@guusdk
Copy link
Copy Markdown
Member

@guusdk guusdk commented Apr 3, 2026

MariaDB was previously handled implicitly by mapping it to DatabaseType.mysql in DbConnectionManager.setMetaData() and sharing all MySQL SQL scripts. This commit gives MariaDB its own identity throughout the codebase.

This adds a copy of the Mysql install and upgrade script under the 'mariadb' name, ensuring that any existing MariaDB installation that was previously running under the Mysql type can continue to upgrade through any path.

Introduces two new CI jobs (mariadb-install and mariadb-upgrade) that mirror the structure of the existing mysql-install and mysql-upgrade jobs, giving MariaDB the same level of automated testing as other supported databases.

Update documentation to reflect MariaDB as a first-class database.

@guusdk guusdk requested a review from Copilot April 3, 2026 13:37
@guusdk guusdk force-pushed the OF-3239_MariaDB-support-introduction branch from 68dde13 to 9bcb2cb Compare April 3, 2026 13:39
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR promotes MariaDB from being implicitly treated as MySQL to a first-class database type across Openfire, including dedicated schema scripts, JDBC driver inclusion, CI validation, and documentation updates.

Changes:

  • Introduces a distinct DatabaseType.mariadb and MariaDB detection in DbConnectionManager.
  • Adds bundled MariaDB JDBC driver dependencies and MariaDB-specific install/upgrade SQL scripts.
  • Expands CI to validate MariaDB install/upgrade paths and updates docs to include MariaDB configuration guidance.

Reviewed changes

Copilot reviewed 46 out of 46 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
xmppserver/src/main/java/org/jivesoftware/database/DbConnectionManager.java Detect MariaDB distinctly and add DatabaseType.mariadb.
xmppserver/pom.xml Add MariaDB JDBC driver dependency.
build/ci/updater/pom.xml Add MariaDB JDBC driver dependency for the schema updater runner.
.github/workflows/continuous-integration-workflow.yml Add MariaDB install/upgrade CI jobs; include MariaDB in upgrade-script presence checks; wire into publish job dependencies.
build/ci/compose/mariadb.yml New MariaDB Docker Compose definition used by CI jobs.
distribution/src/database/openfire_mariadb.sql New MariaDB install script (mirrors MySQL schema).
distribution/src/database/upgrade/1/openfire_mariadb.sql MariaDB upgrade script v1 (mirrors MySQL).
distribution/src/database/upgrade/2/openfire_mariadb.sql MariaDB upgrade script v2 (mirrors MySQL).
distribution/src/database/upgrade/4/openfire_mariadb.sql MariaDB upgrade script v4 (mirrors MySQL).
distribution/src/database/upgrade/5/openfire_mariadb.sql MariaDB upgrade script v5 (mirrors MySQL).
distribution/src/database/upgrade/6/openfire_mariadb.sql MariaDB upgrade script v6 (mirrors MySQL).
distribution/src/database/upgrade/7/openfire_mariadb.sql MariaDB upgrade script v7 (mirrors MySQL).
distribution/src/database/upgrade/8/openfire_mariadb.sql MariaDB upgrade script v8 (mirrors MySQL).
distribution/src/database/upgrade/9/openfire_mariadb.sql MariaDB upgrade script v9 (mirrors MySQL).
distribution/src/database/upgrade/10/openfire_mariadb.sql MariaDB upgrade script v10 (mirrors MySQL).
distribution/src/database/upgrade/11/openfire_mariadb.sql MariaDB upgrade script v11 (mirrors MySQL).
distribution/src/database/upgrade/12/openfire_mariadb.sql MariaDB upgrade script v12 (mirrors MySQL).
distribution/src/database/upgrade/13/openfire_mariadb.sql MariaDB upgrade script v13 (mirrors MySQL).
distribution/src/database/upgrade/14/openfire_mariadb.sql MariaDB upgrade script v14 (mirrors MySQL).
distribution/src/database/upgrade/15/openfire_mariadb.sql MariaDB upgrade script v15 (mirrors MySQL).
distribution/src/database/upgrade/16/openfire_mariadb.sql MariaDB upgrade script v16 (mirrors MySQL).
distribution/src/database/upgrade/17/openfire_mariadb.sql MariaDB upgrade script v17 (mirrors MySQL).
distribution/src/database/upgrade/18/openfire_mariadb.sql MariaDB upgrade script v18 (mirrors MySQL).
distribution/src/database/upgrade/19/openfire_mariadb.sql MariaDB upgrade script v19 (mirrors MySQL).
distribution/src/database/upgrade/20/openfire_mariadb.sql MariaDB upgrade script v20 (mirrors MySQL).
distribution/src/database/upgrade/21/openfire_mariadb.sql MariaDB upgrade script v21 (mirrors MySQL).
distribution/src/database/upgrade/22/openfire_mariadb.sql MariaDB upgrade script v22 (mirrors MySQL).
distribution/src/database/upgrade/23/openfire_mariadb.sql MariaDB upgrade script v23 (mirrors MySQL).
distribution/src/database/upgrade/24/openfire_mariadb.sql MariaDB upgrade script v24 (mirrors MySQL).
distribution/src/database/upgrade/25/openfire_mariadb.sql MariaDB upgrade script v25 (mirrors MySQL).
distribution/src/database/upgrade/26/openfire_mariadb.sql MariaDB upgrade script v26 (mirrors MySQL).
distribution/src/database/upgrade/27/openfire_mariadb.sql MariaDB upgrade script v27 (mirrors MySQL).
distribution/src/database/upgrade/28/openfire_mariadb.sql MariaDB upgrade script v28 (mirrors MySQL).
distribution/src/database/upgrade/29/openfire_mariadb.sql MariaDB upgrade script v29 (mirrors MySQL).
distribution/src/database/upgrade/30/openfire_mariadb.sql MariaDB upgrade script v30 (mirrors MySQL).
distribution/src/database/upgrade/31/openfire_mariadb.sql MariaDB upgrade script v31 (mirrors MySQL).
distribution/src/database/upgrade/32/openfire_mariadb.sql MariaDB upgrade script v32 (mirrors MySQL).
distribution/src/database/upgrade/33/openfire_mariadb.sql MariaDB upgrade script v33 (mirrors MySQL).
distribution/src/database/upgrade/34/openfire_mariadb.sql MariaDB upgrade script v34 (mirrors MySQL).
distribution/src/database/upgrade/35/openfire_mariadb.sql MariaDB upgrade script v35 (mirrors MySQL).
distribution/src/database/upgrade/36/openfire_mariadb.sql MariaDB upgrade script v36 (mirrors MySQL).
distribution/src/database/upgrade/37/openfire_mariadb.sql MariaDB upgrade script v37 (mirrors MySQL).
distribution/src/database/upgrade/38/openfire_mariadb.sql MariaDB upgrade script v38 (mirrors MySQL).
documentation/database.html Add MariaDB documentation section (driver, setup, encoding notes) and navigation entry.
documentation/db-clustering-guide.html Add MariaDB JDBC URL examples and vendor docs link.
documentation/migration-blowfish-pbkdf2.html Add MariaDB backup/restore command examples.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread documentation/database.html
@guusdk guusdk force-pushed the OF-3239_MariaDB-support-introduction branch from 9bcb2cb to 93484e4 Compare April 3, 2026 14:14
@guusdk guusdk requested a review from Copilot April 3, 2026 15:14
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 46 out of 46 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread documentation/database.html
MariaDB was previously handled implicitly by mapping it to DatabaseType.mysql in DbConnectionManager.setMetaData() and sharing all MySQL SQL scripts. This commit gives MariaDB its own identity throughout the codebase.

This adds a copy of the Mysql install and upgrade script under the 'mariadb' name, ensuring that any existing MariaDB installation that was previously running under the Mysql type can continue to upgrade through any path.

Introduces two new CI jobs (mariadb-install and mariadb-upgrade) that mirror the structure of the existing mysql-install and mysql-upgrade jobs, giving MariaDB the same level of automated testing as other supported databases.

Update documentation to reflect MariaDB as a first-class database.
@guusdk guusdk force-pushed the OF-3239_MariaDB-support-introduction branch from 93484e4 to 3f8be18 Compare April 3, 2026 15:43
Copy link
Copy Markdown
Member

@Fishbowler Fishbowler left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks sensible and healthy, and very low risk. Needs a conflict resolution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants