Merge pull request #1365 from CyberL1/fix/application-commands-arrays-default

Default to `[]` for `options`, `integration_types`, `contexts`
This commit is contained in:
Cyber 2025-10-23 09:16:26 +02:00 committed by GitHub
commit a7c0ec6910
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 29 additions and 3 deletions

View File

@ -53,7 +53,7 @@ export class ApplicationCommand extends BaseClass {
@Column({ nullable: true, type: "simple-json" })
description_localizations?: Record<string, string>;
@Column({ nullable: true, type: "simple-json" })
@Column({ type: "simple-json", default: [] })
options?: ApplicationCommandOption[];
@Column({ nullable: true, type: String })
@ -71,13 +71,13 @@ export class ApplicationCommand extends BaseClass {
@Column({ default: false })
nsfw?: boolean;
@Column({ nullable: true, type: "simple-json" })
@Column({ type: "simple-json", default: [] })
integration_types?: ApplicationIntegrationType[];
@Column({ default: 0 })
global_popularity_rank?: number;
@Column({ nullable: true, type: "simple-json" })
@Column({ type: "simple-json", default: [] })
contexts?: InteractionContextType[];
@Column({ default: 0 })

View File

@ -0,0 +1,26 @@
import { MigrationInterface, QueryRunner } from "typeorm";
export class ApplicationCommandsArraysNotNullable1761203098404 implements MigrationInterface {
name = "ApplicationCommandsArraysNotNullable1761203098404";
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`UPDATE "application_commands" SET options = '[]' WHERE options IS NULL`);
await queryRunner.query(`UPDATE "application_commands" SET integration_types = '[]' WHERE integration_types IS NULL`);
await queryRunner.query(`UPDATE "application_commands" SET contexts = '[]' WHERE contexts IS NULL`);
await queryRunner.query(`ALTER TABLE "application_commands" ALTER COLUMN "options" SET NOT NULL`);
await queryRunner.query(`ALTER TABLE "application_commands" ALTER COLUMN "options" SET DEFAULT '[]'`);
await queryRunner.query(`ALTER TABLE "application_commands" ALTER COLUMN "integration_types" SET NOT NULL`);
await queryRunner.query(`ALTER TABLE "application_commands" ALTER COLUMN "integration_types" SET DEFAULT '[]'`);
await queryRunner.query(`ALTER TABLE "application_commands" ALTER COLUMN "contexts" SET NOT NULL`);
await queryRunner.query(`ALTER TABLE "application_commands" ALTER COLUMN "contexts" SET DEFAULT '[]'`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "application_commands" ALTER COLUMN "contexts" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "application_commands" ALTER COLUMN "contexts" DROP NOT NULL`);
await queryRunner.query(`ALTER TABLE "application_commands" ALTER COLUMN "integration_types" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "application_commands" ALTER COLUMN "integration_types" DROP NOT NULL`);
await queryRunner.query(`ALTER TABLE "application_commands" ALTER COLUMN "options" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "application_commands" ALTER COLUMN "options" DROP NOT NULL`);
}
}