| Age | Commit message (Collapse) | Author | Files | Lines |
|
Excluding storage/ from extraction (unzip -x 'storage/*') dropped the
storage/framework/{cache,views,sessions} skeleton Laravel needs to boot, so
the first artisan call died with a misleading "Target class [auth] does not
exist" (the real boot error is masked by the exception reporter, which calls
auth()). Extract the whole archive and overlay live user data on top instead.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Lessons from the community upgrade gist and the official self-managed upgrade
docs:
- Verify the downloaded zip against the release .sha256 (when sha256sum is
available) and validate the extracted tree (artisan, bootstrap, vendor, the
compiled frontend bundle) before the live swap, so a truncated or corrupt
download cannot replace a working install.
- Exclude storage/ from extraction since the live storage is carried over.
- Match the official upgrade command sequence: migrate --seed, cache:clear,
view:clear, firefly-iii:upgrade-database, firefly-iii:laravel-passport-keys.
Adds the previously missing view:clear and switches from the generic
passport:install to Firefly's firefly-iii:laravel-passport-keys. Keeps
--force and the oauth migration reconcile.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Two root causes made the composer-based update produce a broken install:
- composer create-project ships source only, without the compiled frontend
bundles (public/v1/js/app.js etc.), leaving the UI broken (no graphs, 404s).
Switch to downloading and extracting the official GitHub release zip, which
is prebuilt. Normalize the version so both "6.6.5" and "v6.6.5" resolve to
the correct v-prefixed release asset.
- Laravel Passport renames its migration files between versions, so a
carried-over DB has the oauth_* tables while the new filenames look pending,
and migrate aborts trying to recreate existing tables. Reconcile the
migrations ledger before migrate: record already-present tables, let missing
ones be created.
Also add an ERR trap so a failed run names the failing line and cannot
masquerade as success (a silent mid-run failure left a half-built dir that
looked done), a dependency check (curl/unzip/php), and mkdir guards for the
storage carry-over. Document all of it in README.md and CLAUDE.md.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
|
Update a Firefly III instance on Debian: install latest or pinned
release via Composer, carry over config/uploads/exports/SQLite DB,
migrate, swap in, restart Apache. Timestamped DB backup before any
change; --restore rolls back to the previous version.
Licensed GPLv2-only.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|