Error migrating database when upgrading to 7.2.1

I got error when performing database migration script as github release notes asks:

$ NODE_CONFIG_DIR=/var/www/peertube/config NODE_ENV=production node dist/scripts/migrations/peertube-7.2.js
Running SQL request to update comments count...
Error
    at Query.run (/var/www/peertube/versions/peertube-v7.2.1/node_modules/sequelize/lib/dialects/postgres/query.js:50:25)
    at /var/www/peertube/versions/peertube-v7.2.1/node_modules/sequelize/lib/sequelize.js:315:28
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async run (file:///var/www/peertube/versions/peertube-v7.2.1/dist/scripts/migrations/peertube-7.2.js:13:9) {
  name: 'SequelizeDatabaseError',
  parent: error: column "comments" of relation "video" does not exist
      at Parser.parseErrorMessage (/var/www/peertube/versions/peertube-v7.2.1/node_modules/pg-protocol/dist/parser.js:285:98)
      at Parser.handlePacket (/var/www/peertube/versions/peertube-v7.2.1/node_modules/pg-protocol/dist/parser.js:122:29)
      at Parser.parse (/var/www/peertube/versions/peertube-v7.2.1/node_modules/pg-protocol/dist/parser.js:35:38)
      at Socket.<anonymous> (/var/www/peertube/versions/peertube-v7.2.1/node_modules/pg-protocol/dist/index.js:11:42)
      at Socket.emit (node:events:524:28)
      at addChunk (node:internal/streams/readable:561:12)
      at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
      at Readable.push (node:internal/streams/readable:392:5)
      at TCP.onStreamRead (node:internal/stream_base_commons:191:23) {
    length: 128,
    severity: 'ERROR',
    code: '42703',
    detail: undefined,
    hint: undefined,
    position: '20',
    internalPosition: undefined,
    internalQuery: undefined,
    where: undefined,
    schema: undefined,
    table: undefined,
    column: undefined,
    dataType: undefined,
    constraint: undefined,
    file: 'analyze.c',
    line: '2515',
    routine: 'transformUpdateTargetList',
    sql: 'UPDATE "video" SET "comments" = (SELECT COUNT(*) FROM "videoComment" WHERE "videoComment"."videoId" = "video"."id")',
    parameters: undefined
  },
  original: error: column "comments" of relation "video" does not exist
      at Parser.parseErrorMessage (/var/www/peertube/versions/peertube-v7.2.1/node_modules/pg-protocol/dist/parser.js:285:98)
      at Parser.handlePacket (/var/www/peertube/versions/peertube-v7.2.1/node_modules/pg-protocol/dist/parser.js:122:29)
      at Parser.parse (/var/www/peertube/versions/peertube-v7.2.1/node_modules/pg-protocol/dist/parser.js:35:38)
      at Socket.<anonymous> (/var/www/peertube/versions/peertube-v7.2.1/node_modules/pg-protocol/dist/index.js:11:42)
      at Socket.emit (node:events:524:28)
      at addChunk (node:internal/streams/readable:561:12)
      at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)
      at Readable.push (node:internal/streams/readable:392:5)
      at TCP.onStreamRead (node:internal/stream_base_commons:191:23) {
    length: 128,
    severity: 'ERROR',
    code: '42703',
    detail: undefined,
    hint: undefined,
    position: '20',
    internalPosition: undefined,
    internalQuery: undefined,
    where: undefined,
    schema: undefined,
    table: undefined,
    column: undefined,
    dataType: undefined,
    constraint: undefined,
    file: 'analyze.c',
    line: '2515',
    routine: 'transformUpdateTargetList',
    sql: 'UPDATE "video" SET "comments" = (SELECT COUNT(*) FROM "videoComment" WHERE "videoComment"."videoId" = "video"."id")',
    parameters: undefined
  },
  sql: 'UPDATE "video" SET "comments" = (SELECT COUNT(*) FROM "videoComment" WHERE "videoComment"."videoId" = "video"."id")',
  parameters: {}
}

Not sure what happens. Now the peertube instance is still up as 7.2.1, but I’m not sure which features are broken.

Any help would be appreciated.

Did you wait for Peertube to start before using the migration script?

Release notes mentions:

You need to manually execute a migration script after your upgrade while PeerTube is running and the database migration is complete (Migrations finished. New migration version schema: xxx in PeerTube startup logs):

When Peertube starts, it first runs needed migration scripts.
Your error logs are basically saying that there is a missing column in the database. Those migration scripts are creating this column, so I guess you run the script too soon.

Just try again.