Update to v3.37.1 Broke Website: Rollback Error due to Field Length Issue

And

  • How was Ghost installed and configured? Ghost version: 3.37.1

  • What Node version, database, OS & browser are you using?
    OS: Ubuntu, v18.04.4 LTS
    Environment: production

  • What errors or information do you see in the console?
    [2020-11-07 20:26:07] INFO Creating database backup
    [2020-11-07 20:26:08] INFO Database backup written to: /var/www/ghost/content/data/mission-victory-india.ghost.2020-11-07-20-26-07.json
    [2020-11-07 20:26:08] WARN Skipping ON DELETE CASCADE for “members_labels_member_id_foreign” constraint - already set
    [2020-11-07 20:26:08] WARN Skipping ON DELETE CASCADE for “members_labels_label_id_foreign” constraint - already set
    [2020-11-07 20:26:08] WARN Skipping “members_stripe_customers_member_id_foreign” foreign key constraint creation - already exists
    [2020-11-07 20:26:08] INFO Adding “members_stripe_customers_customer_id_unique” index
    [2020-11-07 20:26:08] ERROR

NAME: RollbackError
MESSAGE: Cannot remove permission(Delete snippets) from role(Editor) - permission does not exist

level: normal

“OuterError: Field length of customer_id in members_stripe_customers is too long!”
RollbackError: Cannot remove permission(Delete snippets) from role(Editor) - permission does not exist
at RollbackError.KnexMigrateError (/var/www/ghost/versions/3.37.1/node_modules/knex-migrator/lib/errors.js:7:26)
at new RollbackError (/var/www/ghost/versions/3.37.1/node_modules/knex-migrator/lib/errors.js:31:26)
at /var/www/ghost/versions/3.37.1/node_modules/knex-migrator/lib/index.js:440:23
at tryCatcher (/var/www/ghost/versions/3.37.1/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/var/www/ghost/versions/3.37.1/node_modules/bluebird/js/release/promise.js:547:31)
at Promise._settlePromise (/var/www/ghost/versions/3.37.1/node_modules/bluebird/js/release/promise.js:604:18)
at Promise._settlePromise0 (/var/www/ghost/versions/3.37.1/node_modules/bluebird/js/release/promise.js:649:10)
at Promise._settlePromises (/var/www/ghost/versions/3.37.1/node_modules/bluebird/js/release/promise.js:725:18)
at _drainQueueStep (/var/www/ghost/versions/3.37.1/node_modules/bluebird/js/release/async.js:93:12)
at _drainQueue (/var/www/ghost/versions/3.37.1/node_modules/bluebird/js/release/async.js:86:9)
at Async._drainQueues (/var/www/ghost/versions/3.37.1/node_modules/bluebird/js/release/async.js:102:5)
at Immediate.Async.drainQueues [as _onImmediate] (/var/www/ghost/versions/3.37.1/node_modules/bluebird/js/release/async.js:15:14)
at runCallback (timers.js:705:18)
at tryOnImmediate (timers.js:676:5)
at processImmediate (timers.js:658:5)
at process.topLevelDomainCallback (domain.js:126:23)

Error: Cannot remove permission(Delete snippets) from role(Editor) - permission does not exist
at down (/var/www/ghost/versions/3.37.1/core/server/data/migrations/utils.js:151:23)

[2020-11-07 20:26:12] INFO Blog is in maintenance mode.
[2020-11-07 20:26:12] INFO Ghost is running in production…
[2020-11-07 20:26:12] INFO Your site is now available on https://missionvictoryindia.com/
[2020-11-07 20:26:12] INFO Ctrl+C to shut down
[2020-11-07 20:26:12] INFO Ghost boot 3.317s
[2020-11-07 20:26:12] INFO Creating database backup

  • What steps could someone else take to reproduce the issue you’re having?
    I simply ran the update after running the ghost doctor command.

I checked the database field and the database is empty and the field is already 255 varchar which more than 191 as suggested by another post on this forum.

Any help to restore our website other than setting it up again would be really appreciated!

I have now been able to ascertain that the issue is with the release 3.37.1. At least for our self hosted version.

I incrementally updated using ghost update 3.16.0 till 3.37.0 and skipping a release wherever advised so by the Github Release page.

I also had to update from MariaDB 10.1 to 10.5 on my Ubuntu 18.04 Bionic instance. This is the key behind the field length issue. For anyone still stuck on this, please follow this to remedy the situation. "ER_TOO_LONG_KEY: Specified key was too long" false error · Issue #51 · TryGhost/knex-migrator · GitHub

I am still facing issues in updating to 3.37.1 from even 3.37.0 using ghost update.

I have the same issue currently, it broke everything and had to revert back to previous installation, waiting for a fix