Firebird hinzugefügt

2026-06-28 19:47:30 +00:00
parent 8452029f30
commit 9e044464f8
+150
@@ -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 ':</dev/tcp/firebird/3050'
```
Connect manually:
```bash
isql-fb -user sysdba -password 'pwr0mex!' firebird/3050:/firebird/data/romexis.fdb
```