Update the framework
หมายเหตุ: บทความนี้ยังเป็นภาษาอังกฤษ เนื่องจากคำแปลภาษาไทยกำลังอยู่ระหว่างจัดทำ
Purpose
หัวข้อที่มีชื่อว่า “Purpose”Install a newer stable Docker image while preserving the named data volume and a verified recovery point.
Audience
หัวข้อที่มีชื่อว่า “Audience”Framework administrators and Docker operators.
Update flow
หัวข้อที่มีชื่อว่า “Update flow”flowchart TD A[Full backup and separate secret key copy] --> B[Review release and compatibility] B --> C[Docker updater pulls immutable app image] C --> D[Replace app container with same volume] D --> E[Health check] E -->|Pass| F[Verify migration, login, Apps, and records] E -->|Fail| G[Updater restores previous container] G --> H[Inspect logs and recovery backup] F --> I[Keep recovery material until accepted]Web procedure
หัวข้อที่มีชื่อว่า “Web procedure”- Confirm both Compose services are healthy and the app can reach
http://updater:3400. - Export a Full
.emubackupand copy/data/.emu-secret.key(orEMU_SECRET_KEY_PATH) to separate secure storage. - Sign in with
FW_SystemAdminRole, open Settings → System Maintenance, and run database diagnostics. - Choose Check for updates, review the target version and release notes, then start the update.
- Keep the page open while the app reconnects. Confirm the job reaches
succeeded. - Verify login, recent business records, Designer metadata, important Scripts/Functions, reports, integrations, and database diagnostics.
The app creates a validated pre-update .emubackup under /data/backups before dispatching the job. The updater sidecar pulls the target image, recreates the app container with the existing configuration and /data volume, and waits for a health check. If the new container is unhealthy, it attempts to restore the previous container image.
Container rollback does not reverse database migrations. Keep the pre-update backup and secret key until the new version and its data are accepted.
Upgrade to v0.5.0.0
หัวข้อที่มีชื่อว่า “Upgrade to v0.5.0.0”- Stop the older application and confirm no process or second container can write
data.dbordesigner.db. - Preserve both databases and
.emu-secret.key; the key is intentionally excluded from.emubackup. - Set
EMU_VERSION=0.5.0.0and use the currentdocker-compose.yml, which runs bothappandupdaterservices. - Start the stack and allow the idempotent metadata and index migrations to finish.
- Review Form Extensions with Lines, large Designer workspaces, paginated reports, and the AI Proposal Inbox.
- Verify System Maintenance reports WAL mode, foreign keys, lock timeout, checkpoints, and successful integrity checks for both databases.
v0.5.0.0 removes the production Windows host, user CLI, MCP package, launchers, installers, and host update/restore scripts. Do not copy those components forward from an older release. Production is Docker-only.
The release preserves documented v0.1.x metadata, Function, Script, backup, and synchronous DataContext compatibility. Direct access to private SQLite handles such as kernel.db.prepare() must be reviewed and migrated to supported framework APIs.
Manual Docker fallback
หัวข้อที่มีชื่อว่า “Manual Docker fallback”If the Web procedure cannot start but the existing app is still healthy:
docker compose pulldocker compose up -d --force-recreatedocker compose psdocker compose logs --tail=200 app updaterSet EMU_VERSION to an explicit stable tag before pulling. Reuse the same named /data volume, environment, network, and updater token. Do not run docker compose down -v.