Ghost update failed - portal_title not in the offers table

While attempting a major update from 2.38 to v4 I am blocked by the following error - “The column portal_title is not in the offers table”.

Any thoughts on how to resolve? I would like to move to v4.


Message: Ghost was able to start, but errored during boot with: The column portal_title is not in the offers table

Debug Information:
OS: Ubuntu, v16.04.2 LTS
Node Version: v14.18.1
Ghost Version: 4.20.4
Ghost-CLI Version: 1.17.4
Environment: production
Command: ‘ghost start’

— additional detail from journalctl —
InternalServerError: The column portal_title is not in the offers table
at DatabaseStateManager.makeReady (/ghost/versions/4.20.4/core/server/data/db
at async initDatabase (/ghost/versions/4.20.4/core/boot.js:62:5)
at async bootGhost (/ghost/versions/4.20.4/core/boot.js:344:9)
RollbackError: …
Error: The column portal_title is not in the offers table
at SQLite3_DDL.getColumn (/ghost/versions/4.20.4/node_modules/knex-migrator/node_modules/knex/lib/dialects/sqlite3/schema/ddl.js:48:13)
at /ghost/versions/4.20.4/node_modules/knex-migrator/node_modules/knex/lib/dialects/sqlite3/schema/ddl.js:287:57
at Array.map ()
at client.transaction.connection (/ghost/versions/4.20.4/node_modules/knex-migrator/node_modules/knex/lib/dialects/sqlite3/schema/ddl.js:287:36)
at /ghost/versions/4.20.4/node_modules/knex-migrator/node_modules/knex/lib/transaction.js:183:22

More information - I am using sqlite3 as the database. Here are the tables. No offers in the list.

sqlite> .open ghost.db
sqlite> .tables
actions permissions_apps
api_keys permissions_roles
app_fields permissions_users
app_settings posts
apps posts_authors
brute posts_meta
integrations posts_tags
invites roles
members roles_users
members_stripe_customers sessions
members_stripe_customers_subscriptions settings
migrations subscribers
migrations_lock tags
mobiledoc_revisions users
permissions
webhooks