マイグレートに失敗する。
マイグレートに成功する(COMMIT)
以下のエラーが出る。(ROLLBACK)
query: ALTER TABLE "abuse_user_report" ADD "targetUserId" character varying(32) NOT NULL
query failed: ALTER TABLE "abuse_user_report" ADD "targetUserId" character varying(32) NOT NULL
error: error: column "targetUserId" contains null values
at Parser.parseErrorMessage (/home/misskey/misskey/node_modules/pg-protocol/src/parser.ts:357:11)
at Parser.handlePacket (/home/misskey/misskey/node_modules/pg-protocol/src/parser.ts:186:21)
at Parser.parse (/home/misskey/misskey/node_modules/pg-protocol/src/parser.ts:101:30)
at Socket.<anonymous> (/home/misskey/misskey/node_modules/pg-protocol/src/index.ts:7:48)
at Socket.emit (events.js:314:20)
at Socket.EventEmitter.emit (domain.js:483:12)
at addChunk (_stream_readable.js:298:12)
at readableAddChunk (_stream_readable.js:273:9)
at Socket.Readable.push (_stream_readable.js:214:10)
at TCP.onStreamRead (internal/stream_base_commons.js:188:23) {
length: 146,
severity: 'ERROR',
code: '23502',
detail: undefined,
hint: undefined,
position: undefined,
internalPosition: undefined,
internalQuery: undefined,
where: undefined,
schema: 'public',
table: 'abuse_user_report',
column: 'targetUserId',
dataType: undefined,
constraint: undefined,
file: 'tablecmds.c',
line: '4614',
routine: 'ATRewriteTable'
}
query: ROLLBACK
Error during migration run:
QueryFailedError: column "targetUserId" contains null values
at new QueryFailedError (/home/misskey/misskey/src/error/QueryFailedError.ts:9:9)
at Query.callback (/home/misskey/misskey/src/driver/postgres/PostgresQueryRunner.ts:195:30)
at Query.handleError (/home/misskey/misskey/node_modules/pg/lib/query.js:128:19)
at Client._handleErrorMessage (/home/misskey/misskey/node_modules/pg/lib/client.js:326:17)
at Connection.emit (events.js:314:20)
at Connection.EventEmitter.emit (domain.js:483:12)
at /home/misskey/misskey/node_modules/pg/lib/connection.js:109:12
at Parser.parse (/home/misskey/misskey/node_modules/pg-protocol/src/parser.ts:102:9)
at Socket.<anonymous> (/home/misskey/misskey/node_modules/pg-protocol/src/index.ts:7:48)
at Socket.emit (events.js:314:20) {
length: 146,
severity: 'ERROR',
code: '23502',
detail: undefined,
hint: undefined,
position: undefined,
internalPosition: undefined,
internalQuery: undefined,
where: undefined,
schema: 'public',
table: 'abuse_user_report',
column: 'targetUserId',
dataType: undefined,
constraint: undefined,
file: 'tablecmds.c',
line: '4614',
routine: 'ATRewriteTable',
query: 'ALTER TABLE "abuse_user_report" ADD "targetUserId" character varying(32) NOT NULL',
parameters: []
}
1.Misskeyのアップデートの手順に従ってアプデする
2.yarn migrateでマイグレートを実施する
Misskey: v12.49.0
なぜnullが入っているのか謎
テーブルをSELECTを実行してみたけどこんな感じ

レコードが既にあるテーブルにデフォルト値なしに NOT NULL なカラムを追加しようとしたらそりゃこけるのでは (マイグレーションのコードがおかしい)
ここほんとはrename?
https://github.com/syuilo/misskey/blob/develop/migration/1603094348345-refine-abuse-user-report.ts#L10-L11
自動生成なんだろうな・・・
レコードが既にあるテーブルにデフォルト値なしに NOT NULL なカラムを追加しようとしたらそりゃこけるのでは
よしななマイグレーションコードが生成されているものだと思い込んでた
(まあRename検知できないのは仕方ないのか)
Most helpful comment
レコードが既にあるテーブルにデフォルト値なしに NOT NULL なカラムを追加しようとしたらそりゃこけるのでは (マイグレーションのコードがおかしい)