v0.28.0-rc.1 #76
antybubbs
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Major Change: Upgrading Kaya from SQLite to dedicated PostgreSQL Container.
Kaya now uses PostgreSQL 16.14 as the supported production database.
Existing Kaya installations using SQLite can be migrated using the supplied upgrade Compose configuration. The migration preserves the original SQLite database and creates a verified backup before PostgreSQL is allowed to become authoritative.
1. Back up your existing installation
Stop Kaya:
Create a separate copy of your existing data directory:
Keep this backup until you have confirmed that the PostgreSQL migration has completed successfully and Kaya is operating normally.
2. Pull the latest Kaya images
3. Run the SQLite to PostgreSQL migration
Run the dedicated upgrade service:
This is a one-time migration command for existing SQLite installations.
During the migration, Kaya will:
The original SQLite database and migration backups are retained after conversion.
4. Allow the migration to complete
Migration time depends on:
Large installations may take several minutes or longer.
The migration can perform substantial disk I/O while validating, backing up and converting the database.
5. Start Kaya normally
After the migration completes successfully:
Check the container status:
The Kaya container should become:
You can inspect startup logs with:
A successfully migrated installation should report something similar to:
6. PostgreSQL is now authoritative
After successful cutover, Kaya will use PostgreSQL for normal operation.
The old SQLite database remains available as a retained migration/recovery artifact, but it is not used as a runtime fallback.
Future Kaya application upgrades use the normal process:
Do not run
docker-compose.upgrade.ymlduring normal application updates.Reverse proxy installations
If Kaya is accessed through a reverse proxy such as:
make sure the proxy that connects directly to Kaya is configured as a trusted proxy.
Kaya uses:
as the trust boundary for forwarded request information.
For example, if your reverse proxy connects to Kaya from
192.168.1.3:Use the narrowest IP address or CIDR range appropriate for your environment.
After changing
.env, recreate Kaya:Then open:
Site Administration → Security
Under Client IP and trusted proxy, confirm:
If Kaya is externally accessed using HTTPS but the reverse proxy is not trusted, some generated URLs may incorrectly use the internal HTTP scheme.
If the migration fails
Kaya's SQLite to PostgreSQL migration is designed to fail closed.
If validation cannot prove that the migration is safe, PostgreSQL will not become authoritative.
Do not delete or manually modify migration artifacts.
Preserve:
Also preserve the PostgreSQL data volume.
Do not:
Capture the migration logs before attempting recovery:
docker compose logs > kaya-upgrade.logIf you request support, include the relevant migration error and state information, but remove passwords, tokens, private hostnames or other sensitive deployment information.
Migration backups
Kaya creates a verified migration backup under:
which normally corresponds to:
on the host.
Backup files use names similar to:
with accompanying metadata.
These backups should be retained until the PostgreSQL installation has been fully verified and incorporated into your normal PostgreSQL backup strategy.
After migration
Once PostgreSQL is active, operational database backups should use PostgreSQL-native backup tooling rather than copying
kaya.db.The supported database architecture becomes:
The old SQLite database remains a migration/recovery artifact and should not be restored over an active PostgreSQL installation.
Verify your installation
After upgrading, confirm:
You can restart Kaya to confirm PostgreSQL remains authoritative:
Then check:
You should continue to see:
Quick upgrade reference
This discussion was created from the release v0.28.0-rc.1.
All reactions