Hi everyone,
I’m having problems starting Ghost. I was running an older version (3.18) and ran ‘ghost update’. There were no errors printed, but my site was down.
When I run ‘ghost run’ to make sure everything is working fine, I get this error:
[ 2020-12-14 18:06:47] INFO Ghost boot 8.005s
[2020-12-14 18:06:47] INFO Creating database backup
[2020-12-14 18:06:47] INFO Database backup written to: /var/www/ghost/content/data/mante.ghost.2020-12-14-18-06-47.json
[2020-12-14 18:06:47] INFO Adding email_recipients.delivered_at column
[2020-12-14 18:06:47] INFO Adding email_recipients.opened_at column
[2020-12-14 18:06:47] INFO Adding email_recipients.failed_at column
[2020-12-14 18:06:47] INFO Adding emails.delivered_count column
[2020-12-14 18:06:47] INFO Adding emails.opened_count column
[2020-12-14 18:06:47] INFO Adding emails.failed_count column
[2020-12-14 18:06:47] INFO Adding members.email_open_rate column
[2020-12-14 18:06:47] INFO Adding members.email_count column
[2020-12-14 18:06:47] INFO Adding members.email_opened_count column
[2020-12-14 18:06:47] INFO Populating email counts on members
[2020-12-14 18:06:47] INFO Removing members.email_opened_count column
[2020-12-14 18:06:48] INFO Removing members.email_count column
[2020-12-14 18:06:48] INFO Removing members.email_open_rate column
[2020-12-14 18:06:48] INFO Removing emails.failed_count column
[2020-12-14 18:06:48] INFO Removing emails.opened_count column
[2020-12-14 18:06:48] INFO Removing emails.delivered_count column
[2020-12-14 18:06:48] INFO Removing email_recipients.failed_at column
[2020-12-14 18:06:48] INFO Removing email_recipients.opened_at column
[2020-12-14 18:06:48] INFO Removing email_recipients.delivered_at column
[2020-12-14 18:06:48] INFO Dropping composite index on email_recipients for [email_id, member_email]
[2020-12-14 18:06:48] ERROR alter table `email_recipients` drop foreign key `email_recipients_email_id_foreign` - ER_CANT_DROP_FIELD_OR_KEY: Can't DROP 'email_recipients_email_id_foreign'; check that column/key exists
alter table `email_recipients` drop foreign key `email_recipients_email_id_foreign` - ER_CANT_DROP_FIELD_OR_KEY: Can't DROP 'email_recipients_email_id_foreign'; check that column/key exists
"OuterError: update `members` set `email_count` = (SELECT COUNT(id) FROM email_recipients WHERE email_recipients.member_id = members.id), `email_opened_count` = (SELECT COUNT(id) FROM email_recipients WHERE email_recipients.member_id = members.id AND email_recipients.opened_at IS NOT NULL) - ER_CANT_AGGREGATE_2COLLATIONS: Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='"
Error ID:
400
Error Code:
ER_CANT_DROP_FIELD_OR_KEY
----------------------------------------
RollbackError: alter table `email_recipients` drop foreign key `email_recipients_email_id_foreign` - ER_CANT_DROP_FIELD_OR_KEY: Can't DROP 'email_recipients_email_id_foreign'; check that column/key exists
at RollbackError.KnexMigrateError (/var/www/ghost/versions/3.40.1/node_modules/knex-migrator/lib/errors.js:7:26)
at new RollbackError (/var/www/ghost/versions/3.40.1/node_modules/knex-migrator/lib/errors.js:31:26)
at /var/www/ghost/versions/3.40.1/node_modules/knex-migrator/lib/index.js:440:23
at tryCatcher (/var/www/ghost/versions/3.40.1/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/var/www/ghost/versions/3.40.1/node_modules/bluebird/js/release/promise.js:547:31)
at Promise._settlePromise (/var/www/ghost/versions/3.40.1/node_modules/bluebird/js/release/promise.js:604:18)
at Promise._settlePromise0 (/var/www/ghost/versions/3.40.1/node_modules/bluebird/js/release/promise.js:649:10)
at Promise._settlePromises (/var/www/ghost/versions/3.40.1/node_modules/bluebird/js/release/promise.js:725:18)
at _drainQueueStep (/var/www/ghost/versions/3.40.1/node_modules/bluebird/js/release/async.js:93:12)
at _drainQueue (/var/www/ghost/versions/3.40.1/node_modules/bluebird/js/release/async.js:86:9)
at Async._drainQueues (/var/www/ghost/versions/3.40.1/node_modules/bluebird/js/release/async.js:102:5)
at Immediate.Async.drainQueues [as _onImmediate] (/var/www/ghost/versions/3.40.1/node_modules/bluebird/js/release/async.js:15:14)
at processImmediate (internal/timers.js:461:21)
Error: ER_CANT_DROP_FIELD_OR_KEY: Can't DROP 'email_recipients_email_id_foreign'; check that column/key exists
at Query.Sequence._packetToError (/var/www/ghost/versions/3.40.1/node_modules/mysql/lib/protocol/sequences/Sequence.js:47:14)
at Query.ErrorPacket (/var/www/ghost/versions/3.40.1/node_modules/mysql/lib/protocol/sequences/Query.js:79:18)
at Protocol._parsePacket (/var/www/ghost/versions/3.40.1/node_modules/mysql/lib/protocol/Protocol.js:291:23)
at Parser._parsePacket (/var/www/ghost/versions/3.40.1/node_modules/mysql/lib/protocol/Parser.js:433:10)
at Parser.write (/var/www/ghost/versions/3.40.1/node_modules/mysql/lib/protocol/Parser.js:43:10)
at Protocol.write (/var/www/ghost/versions/3.40.1/node_modules/mysql/lib/protocol/Protocol.js:38:16)
at Socket.<anonymous> (/var/www/ghost/versions/3.40.1/node_modules/mysql/lib/Connection.js:88:28)
at Socket.<anonymous> (/var/www/ghost/versions/3.40.1/node_modules/mysql/lib/Connection.js:526:10)
at Socket.emit (events.js:314:20)
at Socket.EventEmitter.emit (domain.js:483:12)
at addChunk (_stream_readable.js:297:12)
at readableAddChunk (_stream_readable.js:272:9)
at Socket.Readable.push (_stream_readable.js:213:10)
at TCP.onStreamRead (internal/stream_base_commons.js:188:23)
--------------------
at Protocol._enqueue (/var/www/ghost/versions/3.40.1/node_modules/mysql/lib/protocol/Protocol.js:144:48)
at Connection.query (/var/www/ghost/versions/3.40.1/node_modules/mysql/lib/Connection.js:198:25)
at /var/www/ghost/versions/3.40.1/node_modules/knex-migrator/node_modules/knex/lib/dialects/mysql/index.js:135:18
at new Promise (<anonymous>)
at Client_MySQL._query (/var/www/ghost/versions/3.40.1/node_modules/knex-migrator/node_modules/knex/lib/dialects/mysql/index.js:129:12)
at Client_MySQL.query (/var/www/ghost/versions/3.40.1/node_modules/knex-migrator/node_modules/knex/lib/client.js:169:17)
at Runner.query (/var/www/ghost/versions/3.40.1/node_modules/knex-migrator/node_modules/knex/lib/runner.js:151:36)
at Runner.queryArray (/var/www/ghost/versions/3.40.1/node_modules/knex-migrator/node_modules/knex/lib/runner.js:248:31)
at /var/www/ghost/versions/3.40.1/node_modules/knex-migrator/node_modules/knex/lib/runner.js:38:25
at /var/www/ghost/versions/3.40.1/node_modules/knex-migrator/node_modules/knex/lib/runner.js:277:24
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at async down (/var/www/ghost/versions/3.40.1/core/server/data/migrations/versions/3.39/06-add-email-recipient-index.js:46:13)
at async Object.down (/var/www/ghost/versions/3.40.1/core/server/data/migrations/utils.js:219:13)
Can anyone tell me what I did wrong and what I could do to fix it? Thanks in advance!