Skip to content

wekan

v9.94 Feature

This release adds 2 notable features for engineering teams evaluating rollout.

Published 12d Productivity & Wikis
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

docker javascript kanban meteor real-time sandstorm
+2 more
snapcraft wekan

Summary

AI summary

Snap: authoritative database setting enables controlled MongoDB↔Ferretdb switching with graceful failure handling.

Changes in this release

Feature Medium

`database` setting becomes authoritative; `snap run wekan.database mongodb|ferretdb` switches DB with no‑downtime handling.

`database` setting becomes authoritative; `snap run wekan.database mongodb|ferretdb` switches DB with no‑downtime handling.

Source: llm_adapter@2026-07-15

Confidence: high

Bugfix High

MongoDB → FerretDB migration now skips dotted collections (GridFS, CollectionFS) and aborts cleanly on failure.

MongoDB → FerretDB migration now skips dotted collections (GridFS, CollectionFS) and aborts cleanly on failure.

Source: llm_adapter@2026-07-15

Confidence: high

Full changelog

v9.94 2026-07-15 WeKan ® release

This release adds the following new features:

  • Snap: the database setting is now authoritative, with a snap run wekan.database mongodb|ferretdb command and no-downtime handling of a failed migration
    (snap-src/bin/wekan-database, snap-src/bin/wekan-control, snap-src/bin/mongodb-control,
    snap-src/bin/ferretdb-control, snap-src/bin/migration-control, snap-src/bin/migration-pending).
    Previously the control scripts force-switched to FerretDB whenever a *.sqlite file
    existed, so snap set wekan database=mongodb would not stick and there was no way to keep
    WeKan on MongoDB while fixing a migration — a failed migration meant downtime. Now the
    database setting decides which database WeKan runs on, and snap run wekan.database mongodb switches WeKan to MongoDB (and pauses auto-migration, migrate=off) while
    snap run wekan.database ferretdb switches to the migrated FerretDB. Auto-migration can
    be paused with snap set wekan migrate=off and, crucially, a migration that FAILS now pauses
    itself and hands back to MongoDB automatically
    (migration-control fail_and_run_mongodb)
    so WeKan keeps working on MongoDB instead of retrying-and-failing every start; re-run it with
    snap run wekan.migrate. A successful migration also restarts wekan.wekan so it
    reconnects to FerretDB. The only remaining auto-override is the safety guard that refuses to
    start an empty FerretDB while MongoDB still holds data. Thanks to xet7.

and fixes the following bugs:

  • Snap: the MongoDB → FerretDB migration failed on GridFS collections and left a half-migrated
    database behind
    (releases/migrate-mongodb-to-ferretdb.mjs,
    snap-src/bin/migrate-mongo3-to-ferretdb.mjs, snap-src/bin/migration-control). FerretDB v1
    rejects collection names containing a dot ("invalid key: 'attachments.chunks' (key must not
    contain '.' sign)"
    ), and the importers tried to copy the GridFS internals collections
    (attachments.chunks, attachments.files, avatars.*, cfs_gridfs.*) and the CollectionFS
    cfs.<bucket>.filerecord collections as text, so the migration aborted. Now the text phase
    skips every dotted collection — none of WeKan's real data collections contain a dot, and
    the dotted ones are all GridFS internals (extracted in the file phase), CollectionFS
    filerecords (turned into bare attachments/avatars records in the file phase, now created
    with an upsert) or system.* collections. And crucially, when a migration fails partway it
    now deletes the partial FerretDB SQLite it wrote (migration-control's
    discard_partial_ferretdb): otherwise that non-empty-but-incomplete files/db/wekan.sqlite
    looked "migrated" to the data check, so the snap disabled MongoDB and tried to serve an
    incomplete FerretDB. Now a failed migration cleanly keeps MongoDB and retries. Thanks to xet7.

Thanks to above GitHub users for their contributions and translators for their translations.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track wekan

Get notified when new releases ship.

Sign up free

About wekan

The Open Source kanban, built with Meteor. GitHub issues/PRs are only for FLOSS Developers, not for support, support is at https://wekan.fi/commercial-support/ . New English strings for new features at imports/i18n/data/en.i18n.json . Non-English translations at https://app.transifex.com/wekan/wekan only.

All releases →

Related context

Related tools

Beta — feedback welcome: [email protected]