From 9e044464f81cab771f8c282e0d8a33842044d6f4 Mon Sep 17 00:00:00 2001 From: Patrick Gniza Date: Sun, 28 Jun 2026 19:47:30 +0000 Subject: [PATCH] =?UTF-8?q?Firebird=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Firebird.md | 150 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 Firebird.md diff --git a/Firebird.md b/Firebird.md new file mode 100644 index 0000000..a818d36 --- /dev/null +++ b/Firebird.md @@ -0,0 +1,150 @@ +# Firebird + +Firebird support is being introduced as a parallel database backend. + +This is especially relevant because macOS-based Romexis installations use Firebird and because Firebird is a realistic path for ARM64 environments. + +--- + +## Compose Service + +Recommended Firebird service: + +```yaml +firebird: + image: jacobalberty/firebird:3.0 + container_name: romexis-firebird + environment: + ISC_PASSWORD: "${FIREBIRD_PASSWORD}" + FIREBIRD_DATABASE: "romexis.fdb" + ports: + - "${FIREBIRD_PORT:-3050}:3050" + volumes: + - ${ROMEXIS_DATA_ROOT}/firebird:/firebird/data + healthcheck: + test: ["CMD-SHELL", "nc -z localhost 3050 || exit 1"] + interval: 10s + timeout: 5s + retries: 30 + start_period: 20s + restart: unless-stopped +``` + +Do not configure the container to create a second `SYSDBA` user. `SYSDBA` already exists. + +--- + +## Romexis Settings + +```env +SERVER_DB=4 +FIREBIRD_PORT=3050 +FIREBIRD_USER=sysdba +FIREBIRD_PASSWORD=pwr0mex! +FIREBIRD_DB_PATH=/firebird/data/romexis.fdb + +ROMEXIS_DB_USER=sysdba +ROMEXIS_DB_PASSWORD=pwr0mex! +``` + +Generated JDBC URL: + +```text +jdbc:firebirdsql://firebird:3050//firebird/data/romexis.fdb +``` + +--- + +## Firebird SQL Payload + +The Firebird SQL payload is extracted from the macOS Romexis installer and stored in: + +```text +/opt/romexis-firebird-db +``` + +Important files: + +```text +scripts/RX_Create_Database.sql +scripts/RX_Base_10fb_MAC.sql +scripts/rxdb.sh +scripts/rxupd.sh +tools/Romexis_Firebird_Backup.sh +tools/Romexis_Firebird_Restore.sh +templates/romexis_new.fdb +``` + +--- + +## Important Tooling Note + +The Firebird CLI tool should be: + +```text +isql-fb +``` + +not unixODBC `isql`. + +If you see this output: + +```text +unixODBC - isql and iusql +``` + +then the wrong tool is being used. + +Set: + +```bash +export ISQL=isql-fb +``` + +or make the init script default to: + +```bash +ISQL="${ISQL:-isql-fb}" +``` + +--- + +## Database Creation Strategy + +If the Firebird container creates an empty database via: + +```yaml +FIREBIRD_DATABASE: "romexis.fdb" +``` + +then the Romexis Firebird init script should not run `CREATE DATABASE` again. + +Instead, it should connect to the existing empty database and import the Romexis SQL scripts. + +--- + +## Debugging Firebird Initialization + +Open a shell in the Romexis container: + +```bash +docker exec -it romexis-server bash +``` + +Run the initializer manually: + +```bash +ISQL=isql-fb DB_CREATE_VERBOSE=1 bash -x /opt/init-romexis-firebird-db.sh +``` + +Check connectivity: + +```bash +bash -c ':