Chg: tsxをdevDependenciesに移動 / Del: MikroORM公式CLIを廃止 / Feat: scriptsのmigrator

This commit is contained in:
2026-03-27 22:53:18 +09:00
parent d66ab803bc
commit 6b54ae4306
6 changed files with 359 additions and 17 deletions
@@ -11,20 +11,32 @@
"type": "varchar(255)",
"unsigned": false,
"autoincrement": false,
"primary": false,
"primary": true,
"nullable": false,
"unique": false,
"length": 255,
"precision": null,
"scale": null,
"default": null,
"comment": null,
"enumItems": [],
"mappedType": "string"
},
"value": {
"name": "value",
"type": "varchar(255)",
"type": "text",
"unsigned": false,
"autoincrement": false,
"primary": false,
"nullable": false,
"length": 255,
"mappedType": "string"
"unique": false,
"length": null,
"precision": null,
"scale": null,
"default": null,
"comment": null,
"enumItems": [],
"mappedType": "text"
}
},
"name": "config",
@@ -47,6 +59,22 @@
},
{
"columns": {
"id": {
"name": "id",
"type": "varchar(10)",
"unsigned": false,
"autoincrement": false,
"primary": true,
"nullable": false,
"unique": false,
"length": 10,
"precision": null,
"scale": null,
"default": null,
"comment": null,
"enumItems": [],
"mappedType": "string"
},
"userid": {
"name": "userid",
"type": "varchar(20)",
@@ -54,7 +82,13 @@
"autoincrement": false,
"primary": false,
"nullable": false,
"unique": false,
"length": 20,
"precision": null,
"scale": null,
"default": null,
"comment": null,
"enumItems": [],
"mappedType": "string"
},
"username": {
@@ -64,33 +98,141 @@
"autoincrement": false,
"primary": false,
"nullable": false,
"unique": false,
"length": 30,
"precision": null,
"scale": null,
"default": null,
"comment": null,
"enumItems": [],
"mappedType": "string"
},
"profile": {
"name": "profile",
"type": "varchar(4096)",
"unsigned": false,
"autoincrement": false,
"primary": false,
"nullable": false,
"unique": false,
"length": 4096,
"precision": null,
"scale": null,
"default": "''",
"comment": null,
"enumItems": [],
"mappedType": "string"
},
"email": {
"name": "email",
"type": "varchar(254)",
"type": "varchar(256)",
"unsigned": false,
"autoincrement": false,
"primary": false,
"nullable": false,
"length": 254,
"unique": false,
"length": 256,
"precision": null,
"scale": null,
"default": null,
"comment": null,
"enumItems": [],
"mappedType": "string"
},
"password": {
"name": "password",
"type": "varchar(60)",
"type": "text",
"unsigned": false,
"autoincrement": false,
"primary": false,
"nullable": false,
"length": 60,
"mappedType": "string"
"unique": false,
"length": null,
"precision": null,
"scale": null,
"default": null,
"comment": null,
"enumItems": [],
"mappedType": "text"
},
"is_owner": {
"name": "is_owner",
"type": "boolean",
"unsigned": false,
"autoincrement": false,
"primary": false,
"nullable": false,
"unique": false,
"length": null,
"precision": null,
"scale": null,
"default": "false",
"comment": null,
"enumItems": [],
"mappedType": "boolean"
},
"is_suspended": {
"name": "is_suspended",
"type": "boolean",
"unsigned": false,
"autoincrement": false,
"primary": false,
"nullable": false,
"unique": false,
"length": null,
"precision": null,
"scale": null,
"default": "false",
"comment": null,
"enumItems": [],
"mappedType": "boolean"
},
"created_at": {
"name": "created_at",
"type": "timestamptz",
"unsigned": false,
"autoincrement": false,
"primary": false,
"nullable": false,
"unique": false,
"length": 6,
"precision": null,
"scale": null,
"default": null,
"comment": null,
"enumItems": [],
"mappedType": "datetime"
},
"last_used_at": {
"name": "last_used_at",
"type": "timestamptz",
"unsigned": false,
"autoincrement": false,
"primary": false,
"nullable": true,
"unique": false,
"length": 6,
"precision": null,
"scale": null,
"default": null,
"comment": null,
"enumItems": [],
"mappedType": "datetime"
}
},
"name": "user",
"schema": "public",
"indexes": [
{
"columnNames": [
"userid"
],
"composite": false,
"keyName": "user_userid_unique",
"constraint": true,
"primary": false,
"unique": true
},
{
"columnNames": [
"email"
@@ -104,7 +246,7 @@
{
"keyName": "user_pkey",
"columnNames": [
"userid"
"id"
],
"composite": false,
"constraint": true,
@@ -115,6 +257,146 @@
"checks": [],
"foreignKeys": {},
"nativeEnums": {}
},
{
"columns": {
"name": {
"name": "name",
"type": "varchar(64)",
"unsigned": false,
"autoincrement": false,
"primary": true,
"nullable": false,
"unique": false,
"length": 64,
"precision": null,
"scale": null,
"default": null,
"comment": null,
"enumItems": [],
"mappedType": "string"
},
"passphrase": {
"name": "passphrase",
"type": "text",
"unsigned": false,
"autoincrement": false,
"primary": false,
"nullable": false,
"unique": false,
"length": null,
"precision": null,
"scale": null,
"default": null,
"comment": null,
"enumItems": [],
"mappedType": "text"
},
"user_id": {
"name": "user_id",
"type": "varchar(10)",
"unsigned": false,
"autoincrement": false,
"primary": false,
"nullable": false,
"unique": false,
"length": 10,
"precision": null,
"scale": null,
"default": null,
"comment": null,
"enumItems": [],
"mappedType": "string"
},
"is_native": {
"name": "is_native",
"type": "boolean",
"unsigned": false,
"autoincrement": false,
"primary": false,
"nullable": false,
"unique": false,
"length": null,
"precision": null,
"scale": null,
"default": null,
"comment": null,
"enumItems": [],
"mappedType": "boolean"
},
"created_at": {
"name": "created_at",
"type": "timestamptz",
"unsigned": false,
"autoincrement": false,
"primary": false,
"nullable": false,
"unique": false,
"length": 6,
"precision": null,
"scale": null,
"default": null,
"comment": null,
"enumItems": [],
"mappedType": "datetime"
},
"last_used_at": {
"name": "last_used_at",
"type": "timestamptz",
"unsigned": false,
"autoincrement": false,
"primary": false,
"nullable": true,
"unique": false,
"length": 6,
"precision": null,
"scale": null,
"default": null,
"comment": null,
"enumItems": [],
"mappedType": "datetime"
}
},
"name": "token",
"schema": "public",
"indexes": [
{
"columnNames": [
"user_id"
],
"composite": false,
"keyName": "token_user_id_index",
"constraint": false,
"primary": false,
"unique": false
},
{
"keyName": "token_pkey",
"columnNames": [
"name"
],
"composite": false,
"constraint": true,
"primary": true,
"unique": true
}
],
"checks": [],
"foreignKeys": {
"token_user_id_foreign": {
"constraintName": "token_user_id_foreign",
"columnNames": [
"user_id"
],
"localTableName": "public.token",
"referencedColumnNames": [
"id"
],
"referencedTableName": "public.user",
"updateRule": "cascade"
}
},
"nativeEnums": {}
}
],
"nativeEnums": {}
@@ -0,0 +1,36 @@
import { Migration } from '@mikro-orm/migrations';
export class Migration20260327135046 extends Migration {
override async up(): Promise<void> {
this.addSql(`create table "token" ("name" varchar(64) not null, "passphrase" text not null, "user_id" varchar(10) not null, "is_native" boolean not null, "created_at" timestamptz not null, "last_used_at" timestamptz null, constraint "token_pkey" primary key ("name"));`);
this.addSql(`create index "token_user_id_index" on "token" ("user_id");`);
this.addSql(`alter table "token" add constraint "token_user_id_foreign" foreign key ("user_id") references "user" ("id") on update cascade;`);
this.addSql(`alter table "config" alter column "value" type text using ("value"::text);`);
this.addSql(`alter table "user" drop constraint "user_pkey";`);
this.addSql(`alter table "user" add column "id" varchar(10) not null, add column "profile" varchar(4096) not null default '', add column "is_owner" boolean not null default false, add column "is_suspended" boolean not null default false, add column "created_at" timestamptz not null, add column "last_used_at" timestamptz null;`);
this.addSql(`alter table "user" alter column "email" type varchar(256) using ("email"::varchar(256));`);
this.addSql(`alter table "user" alter column "password" type text using ("password"::text);`);
this.addSql(`alter table "user" add constraint "user_userid_unique" unique ("userid");`);
this.addSql(`alter table "user" add constraint "user_pkey" primary key ("id");`);
}
override async down(): Promise<void> {
this.addSql(`drop table if exists "token" cascade;`);
this.addSql(`alter table "config" alter column "value" type varchar(255) using ("value"::varchar(255));`);
this.addSql(`alter table "user" drop constraint "user_userid_unique";`);
this.addSql(`alter table "user" drop constraint "user_pkey";`);
this.addSql(`alter table "user" drop column "id", drop column "profile", drop column "is_owner", drop column "is_suspended", drop column "created_at", drop column "last_used_at";`);
this.addSql(`alter table "user" alter column "email" type varchar(254) using ("email"::varchar(254));`);
this.addSql(`alter table "user" alter column "password" type varchar(60) using ("password"::varchar(60));`);
this.addSql(`alter table "user" add constraint "user_pkey" primary key ("userid");`);
}
}