fix: run migrations in code
Some checks failed
Deploy to GitHub Pages / build_site (push) Failing after 36s
Some checks failed
Deploy to GitHub Pages / build_site (push) Failing after 36s
This commit is contained in:
parent
c6badff1ee
commit
2814165ee6
@ -12,6 +12,7 @@
|
|||||||
"@hono/zod-openapi": "npm:@hono/zod-openapi@^0.18.3",
|
"@hono/zod-openapi": "npm:@hono/zod-openapi@^0.18.3",
|
||||||
"@std/assert": "jsr:@std/assert@1",
|
"@std/assert": "jsr:@std/assert@1",
|
||||||
"@types/pg": "npm:@types/pg@^8.11.10",
|
"@types/pg": "npm:@types/pg@^8.11.10",
|
||||||
|
"drizzle-kit": "npm:drizzle-kit@^0.30.1",
|
||||||
"drizzle-orm": "npm:drizzle-orm@^0.38.2",
|
"drizzle-orm": "npm:drizzle-orm@^0.38.2",
|
||||||
"hono": "npm:hono@^4.6.14",
|
"hono": "npm:hono@^4.6.14",
|
||||||
"pg": "npm:pg@^8.13.1",
|
"pg": "npm:pg@^8.13.1",
|
||||||
|
2
store/deno.lock
generated
2
store/deno.lock
generated
@ -15,6 +15,7 @@
|
|||||||
"npm:@types/node@*": "22.5.4",
|
"npm:@types/node@*": "22.5.4",
|
||||||
"npm:@types/pg@^8.11.10": "8.11.10",
|
"npm:@types/pg@^8.11.10": "8.11.10",
|
||||||
"npm:drizzle-kit@*": "0.30.1_esbuild@0.19.12",
|
"npm:drizzle-kit@*": "0.30.1_esbuild@0.19.12",
|
||||||
|
"npm:drizzle-kit@~0.30.1": "0.30.1_esbuild@0.19.12",
|
||||||
"npm:drizzle-orm@~0.38.2": "0.38.2_@types+pg@8.11.10_pg@8.13.1",
|
"npm:drizzle-orm@~0.38.2": "0.38.2_@types+pg@8.11.10_pg@8.13.1",
|
||||||
"npm:hono@^4.6.14": "4.6.14",
|
"npm:hono@^4.6.14": "4.6.14",
|
||||||
"npm:pg@^8.13.1": "8.13.1",
|
"npm:pg@^8.13.1": "8.13.1",
|
||||||
@ -871,6 +872,7 @@
|
|||||||
"npm:@hono/swagger-ui@0.5",
|
"npm:@hono/swagger-ui@0.5",
|
||||||
"npm:@hono/zod-openapi@~0.18.3",
|
"npm:@hono/zod-openapi@~0.18.3",
|
||||||
"npm:@types/pg@^8.11.10",
|
"npm:@types/pg@^8.11.10",
|
||||||
|
"npm:drizzle-kit@~0.30.1",
|
||||||
"npm:drizzle-orm@~0.38.2",
|
"npm:drizzle-orm@~0.38.2",
|
||||||
"npm:hono@^4.6.14",
|
"npm:hono@^4.6.14",
|
||||||
"npm:pg@^8.13.1",
|
"npm:pg@^8.13.1",
|
||||||
|
23
store/drizzle/0000_clever_odin.sql
Normal file
23
store/drizzle/0000_clever_odin.sql
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
CREATE TABLE "users" (
|
||||||
|
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
||||||
|
"name" text NOT NULL,
|
||||||
|
CONSTRAINT "users_name_unique" UNIQUE("name")
|
||||||
|
);
|
||||||
|
--> statement-breakpoint
|
||||||
|
CREATE TABLE "nodes" (
|
||||||
|
"id" serial PRIMARY KEY NOT NULL,
|
||||||
|
"userId" varchar NOT NULL,
|
||||||
|
"systemId" varchar NOT NULL,
|
||||||
|
"nodeId" varchar NOT NULL,
|
||||||
|
"content" "bytea" NOT NULL,
|
||||||
|
"definition" json NOT NULL,
|
||||||
|
"hash" varchar(8) NOT NULL,
|
||||||
|
"previous" varchar(8)
|
||||||
|
);
|
||||||
|
--> statement-breakpoint
|
||||||
|
ALTER TABLE "nodes" ADD CONSTRAINT "nodes_userId_users_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."users"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
|
||||||
|
ALTER TABLE "nodes" ADD CONSTRAINT "node_previous_fk" FOREIGN KEY ("previous") REFERENCES "public"."nodes"("hash") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
|
||||||
|
CREATE INDEX "user_id_idx" ON "nodes" USING btree ("userId");--> statement-breakpoint
|
||||||
|
CREATE INDEX "system_id_idx" ON "nodes" USING btree ("systemId");--> statement-breakpoint
|
||||||
|
CREATE INDEX "node_id_idx" ON "nodes" USING btree ("nodeId");--> statement-breakpoint
|
||||||
|
CREATE INDEX "hash_idx" ON "nodes" USING btree ("hash");
|
@ -1,10 +0,0 @@
|
|||||||
CREATE TABLE "nodes" (
|
|
||||||
"id" serial NOT NULL,
|
|
||||||
"content" "bytea" NOT NULL,
|
|
||||||
"definition" json NOT NULL
|
|
||||||
);
|
|
||||||
--> statement-breakpoint
|
|
||||||
CREATE TABLE "users" (
|
|
||||||
"id" serial PRIMARY KEY NOT NULL,
|
|
||||||
"name" text
|
|
||||||
);
|
|
@ -1,14 +0,0 @@
|
|||||||
ALTER TABLE "nodes" ADD PRIMARY KEY ("id");--> statement-breakpoint
|
|
||||||
ALTER TABLE "users" ALTER COLUMN "id" SET DATA TYPE uuid;--> statement-breakpoint
|
|
||||||
ALTER TABLE "users" ALTER COLUMN "id" SET DEFAULT gen_random_uuid();--> statement-breakpoint
|
|
||||||
ALTER TABLE "users" ALTER COLUMN "name" SET NOT NULL;--> statement-breakpoint
|
|
||||||
ALTER TABLE "nodes" ADD COLUMN "userId" varchar NOT NULL;--> statement-breakpoint
|
|
||||||
ALTER TABLE "nodes" ADD COLUMN "systemId" varchar NOT NULL;--> statement-breakpoint
|
|
||||||
ALTER TABLE "nodes" ADD COLUMN "nodeId" varchar NOT NULL;--> statement-breakpoint
|
|
||||||
ALTER TABLE "nodes" ADD COLUMN "hash" varchar(8) NOT NULL;--> statement-breakpoint
|
|
||||||
ALTER TABLE "nodes" ADD COLUMN "previous" integer;--> statement-breakpoint
|
|
||||||
CREATE INDEX "user_id_idx" ON "nodes" USING btree ("userId");--> statement-breakpoint
|
|
||||||
CREATE INDEX "system_id_idx" ON "nodes" USING btree ("systemId");--> statement-breakpoint
|
|
||||||
CREATE INDEX "node_id_idx" ON "nodes" USING btree ("nodeId");--> statement-breakpoint
|
|
||||||
CREATE INDEX "hash_idx" ON "nodes" USING btree ("hash");--> statement-breakpoint
|
|
||||||
ALTER TABLE "users" ADD CONSTRAINT "users_name_unique" UNIQUE("name");
|
|
@ -1,3 +0,0 @@
|
|||||||
ALTER TABLE "nodes" ALTER COLUMN "previous" SET DATA TYPE varchar(8);--> statement-breakpoint
|
|
||||||
ALTER TABLE "nodes" ADD CONSTRAINT "nodes_userId_users_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."users"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
|
|
||||||
ALTER TABLE "nodes" ADD CONSTRAINT "node_previous_fk" FOREIGN KEY ("previous") REFERENCES "public"."nodes"("hash") ON DELETE no action ON UPDATE no action;
|
|
@ -1,9 +1,43 @@
|
|||||||
{
|
{
|
||||||
"id": "53dea8d7-01be-4983-ac75-9de9c9a7f592",
|
"id": "91f8730d-dd5a-4a25-b840-e42b0ef1bc72",
|
||||||
"prevId": "00000000-0000-0000-0000-000000000000",
|
"prevId": "00000000-0000-0000-0000-000000000000",
|
||||||
"version": "7",
|
"version": "7",
|
||||||
"dialect": "postgresql",
|
"dialect": "postgresql",
|
||||||
"tables": {
|
"tables": {
|
||||||
|
"public.users": {
|
||||||
|
"name": "users",
|
||||||
|
"schema": "",
|
||||||
|
"columns": {
|
||||||
|
"id": {
|
||||||
|
"name": "id",
|
||||||
|
"type": "uuid",
|
||||||
|
"primaryKey": true,
|
||||||
|
"notNull": true,
|
||||||
|
"default": "gen_random_uuid()"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"name": "name",
|
||||||
|
"type": "text",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"indexes": {},
|
||||||
|
"foreignKeys": {},
|
||||||
|
"compositePrimaryKeys": {},
|
||||||
|
"uniqueConstraints": {
|
||||||
|
"users_name_unique": {
|
||||||
|
"name": "users_name_unique",
|
||||||
|
"nullsNotDistinct": false,
|
||||||
|
"columns": [
|
||||||
|
"name"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"policies": {},
|
||||||
|
"checkConstraints": {},
|
||||||
|
"isRLSEnabled": false
|
||||||
|
},
|
||||||
"public.nodes": {
|
"public.nodes": {
|
||||||
"name": "nodes",
|
"name": "nodes",
|
||||||
"schema": "",
|
"schema": "",
|
||||||
@ -11,6 +45,24 @@
|
|||||||
"id": {
|
"id": {
|
||||||
"name": "id",
|
"name": "id",
|
||||||
"type": "serial",
|
"type": "serial",
|
||||||
|
"primaryKey": true,
|
||||||
|
"notNull": true
|
||||||
|
},
|
||||||
|
"userId": {
|
||||||
|
"name": "userId",
|
||||||
|
"type": "varchar",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": true
|
||||||
|
},
|
||||||
|
"systemId": {
|
||||||
|
"name": "systemId",
|
||||||
|
"type": "varchar",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": true
|
||||||
|
},
|
||||||
|
"nodeId": {
|
||||||
|
"name": "nodeId",
|
||||||
|
"type": "varchar",
|
||||||
"primaryKey": false,
|
"primaryKey": false,
|
||||||
"notNull": true
|
"notNull": true
|
||||||
},
|
},
|
||||||
@ -25,35 +77,110 @@
|
|||||||
"type": "json",
|
"type": "json",
|
||||||
"primaryKey": false,
|
"primaryKey": false,
|
||||||
"notNull": true
|
"notNull": true
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"indexes": {},
|
"hash": {
|
||||||
"foreignKeys": {},
|
"name": "hash",
|
||||||
"compositePrimaryKeys": {},
|
"type": "varchar(8)",
|
||||||
"uniqueConstraints": {},
|
"primaryKey": false,
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.users": {
|
|
||||||
"name": "users",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "serial",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
"notNull": true
|
||||||
},
|
},
|
||||||
"name": {
|
"previous": {
|
||||||
"name": "name",
|
"name": "previous",
|
||||||
"type": "text",
|
"type": "varchar(8)",
|
||||||
"primaryKey": false,
|
"primaryKey": false,
|
||||||
"notNull": false
|
"notNull": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"indexes": {},
|
"indexes": {
|
||||||
"foreignKeys": {},
|
"user_id_idx": {
|
||||||
|
"name": "user_id_idx",
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"expression": "userId",
|
||||||
|
"isExpression": false,
|
||||||
|
"asc": true,
|
||||||
|
"nulls": "last"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isUnique": false,
|
||||||
|
"concurrently": false,
|
||||||
|
"method": "btree",
|
||||||
|
"with": {}
|
||||||
|
},
|
||||||
|
"system_id_idx": {
|
||||||
|
"name": "system_id_idx",
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"expression": "systemId",
|
||||||
|
"isExpression": false,
|
||||||
|
"asc": true,
|
||||||
|
"nulls": "last"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isUnique": false,
|
||||||
|
"concurrently": false,
|
||||||
|
"method": "btree",
|
||||||
|
"with": {}
|
||||||
|
},
|
||||||
|
"node_id_idx": {
|
||||||
|
"name": "node_id_idx",
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"expression": "nodeId",
|
||||||
|
"isExpression": false,
|
||||||
|
"asc": true,
|
||||||
|
"nulls": "last"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isUnique": false,
|
||||||
|
"concurrently": false,
|
||||||
|
"method": "btree",
|
||||||
|
"with": {}
|
||||||
|
},
|
||||||
|
"hash_idx": {
|
||||||
|
"name": "hash_idx",
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"expression": "hash",
|
||||||
|
"isExpression": false,
|
||||||
|
"asc": true,
|
||||||
|
"nulls": "last"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"isUnique": false,
|
||||||
|
"concurrently": false,
|
||||||
|
"method": "btree",
|
||||||
|
"with": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"foreignKeys": {
|
||||||
|
"nodes_userId_users_id_fk": {
|
||||||
|
"name": "nodes_userId_users_id_fk",
|
||||||
|
"tableFrom": "nodes",
|
||||||
|
"tableTo": "users",
|
||||||
|
"columnsFrom": [
|
||||||
|
"userId"
|
||||||
|
],
|
||||||
|
"columnsTo": [
|
||||||
|
"id"
|
||||||
|
],
|
||||||
|
"onDelete": "no action",
|
||||||
|
"onUpdate": "no action"
|
||||||
|
},
|
||||||
|
"node_previous_fk": {
|
||||||
|
"name": "node_previous_fk",
|
||||||
|
"tableFrom": "nodes",
|
||||||
|
"tableTo": "nodes",
|
||||||
|
"columnsFrom": [
|
||||||
|
"previous"
|
||||||
|
],
|
||||||
|
"columnsTo": [
|
||||||
|
"hash"
|
||||||
|
],
|
||||||
|
"onDelete": "no action",
|
||||||
|
"onUpdate": "no action"
|
||||||
|
}
|
||||||
|
},
|
||||||
"compositePrimaryKeys": {},
|
"compositePrimaryKeys": {},
|
||||||
"uniqueConstraints": {},
|
"uniqueConstraints": {},
|
||||||
"policies": {},
|
"policies": {},
|
||||||
|
@ -1,175 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "3c2af8b1-1824-4003-a4f0-d3bfc27c235d",
|
|
||||||
"prevId": "53dea8d7-01be-4983-ac75-9de9c9a7f592",
|
|
||||||
"version": "7",
|
|
||||||
"dialect": "postgresql",
|
|
||||||
"tables": {
|
|
||||||
"public.users": {
|
|
||||||
"name": "users",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "uuid",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "gen_random_uuid()"
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"name": "name",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {
|
|
||||||
"users_name_unique": {
|
|
||||||
"name": "users_name_unique",
|
|
||||||
"nullsNotDistinct": false,
|
|
||||||
"columns": [
|
|
||||||
"name"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.nodes": {
|
|
||||||
"name": "nodes",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "serial",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"userId": {
|
|
||||||
"name": "userId",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"systemId": {
|
|
||||||
"name": "systemId",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"nodeId": {
|
|
||||||
"name": "nodeId",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"content": {
|
|
||||||
"name": "content",
|
|
||||||
"type": "bytea",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"definition": {
|
|
||||||
"name": "definition",
|
|
||||||
"type": "json",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"hash": {
|
|
||||||
"name": "hash",
|
|
||||||
"type": "varchar(8)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"previous": {
|
|
||||||
"name": "previous",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {
|
|
||||||
"user_id_idx": {
|
|
||||||
"name": "user_id_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "userId",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
},
|
|
||||||
"system_id_idx": {
|
|
||||||
"name": "system_id_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "systemId",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
},
|
|
||||||
"node_id_idx": {
|
|
||||||
"name": "node_id_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "nodeId",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
},
|
|
||||||
"hash_idx": {
|
|
||||||
"name": "hash_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "hash",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"enums": {},
|
|
||||||
"schemas": {},
|
|
||||||
"sequences": {},
|
|
||||||
"roles": {},
|
|
||||||
"policies": {},
|
|
||||||
"views": {},
|
|
||||||
"_meta": {
|
|
||||||
"columns": {},
|
|
||||||
"schemas": {},
|
|
||||||
"tables": {}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,202 +0,0 @@
|
|||||||
{
|
|
||||||
"id": "d950b459-4e3e-4a24-82d8-918eee2d8379",
|
|
||||||
"prevId": "3c2af8b1-1824-4003-a4f0-d3bfc27c235d",
|
|
||||||
"version": "7",
|
|
||||||
"dialect": "postgresql",
|
|
||||||
"tables": {
|
|
||||||
"public.users": {
|
|
||||||
"name": "users",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "uuid",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"default": "gen_random_uuid()"
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"name": "name",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {
|
|
||||||
"users_name_unique": {
|
|
||||||
"name": "users_name_unique",
|
|
||||||
"nullsNotDistinct": false,
|
|
||||||
"columns": [
|
|
||||||
"name"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
},
|
|
||||||
"public.nodes": {
|
|
||||||
"name": "nodes",
|
|
||||||
"schema": "",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "serial",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"userId": {
|
|
||||||
"name": "userId",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"systemId": {
|
|
||||||
"name": "systemId",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"nodeId": {
|
|
||||||
"name": "nodeId",
|
|
||||||
"type": "varchar",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"content": {
|
|
||||||
"name": "content",
|
|
||||||
"type": "bytea",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"definition": {
|
|
||||||
"name": "definition",
|
|
||||||
"type": "json",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"hash": {
|
|
||||||
"name": "hash",
|
|
||||||
"type": "varchar(8)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true
|
|
||||||
},
|
|
||||||
"previous": {
|
|
||||||
"name": "previous",
|
|
||||||
"type": "varchar(8)",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {
|
|
||||||
"user_id_idx": {
|
|
||||||
"name": "user_id_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "userId",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
},
|
|
||||||
"system_id_idx": {
|
|
||||||
"name": "system_id_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "systemId",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
},
|
|
||||||
"node_id_idx": {
|
|
||||||
"name": "node_id_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "nodeId",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
},
|
|
||||||
"hash_idx": {
|
|
||||||
"name": "hash_idx",
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"expression": "hash",
|
|
||||||
"isExpression": false,
|
|
||||||
"asc": true,
|
|
||||||
"nulls": "last"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"isUnique": false,
|
|
||||||
"concurrently": false,
|
|
||||||
"method": "btree",
|
|
||||||
"with": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"foreignKeys": {
|
|
||||||
"nodes_userId_users_id_fk": {
|
|
||||||
"name": "nodes_userId_users_id_fk",
|
|
||||||
"tableFrom": "nodes",
|
|
||||||
"tableTo": "users",
|
|
||||||
"columnsFrom": [
|
|
||||||
"userId"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "no action",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
},
|
|
||||||
"node_previous_fk": {
|
|
||||||
"name": "node_previous_fk",
|
|
||||||
"tableFrom": "nodes",
|
|
||||||
"tableTo": "nodes",
|
|
||||||
"columnsFrom": [
|
|
||||||
"previous"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"hash"
|
|
||||||
],
|
|
||||||
"onDelete": "no action",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"policies": {},
|
|
||||||
"checkConstraints": {},
|
|
||||||
"isRLSEnabled": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"enums": {},
|
|
||||||
"schemas": {},
|
|
||||||
"sequences": {},
|
|
||||||
"roles": {},
|
|
||||||
"policies": {},
|
|
||||||
"views": {},
|
|
||||||
"_meta": {
|
|
||||||
"columns": {},
|
|
||||||
"schemas": {},
|
|
||||||
"tables": {}
|
|
||||||
}
|
|
||||||
}
|
|
@ -5,22 +5,8 @@
|
|||||||
{
|
{
|
||||||
"idx": 0,
|
"idx": 0,
|
||||||
"version": "7",
|
"version": "7",
|
||||||
"when": 1734446124519,
|
"when": 1734694927055,
|
||||||
"tag": "0000_dark_squirrel_girl",
|
"tag": "0000_clever_odin",
|
||||||
"breakpoints": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idx": 1,
|
|
||||||
"version": "7",
|
|
||||||
"when": 1734693909872,
|
|
||||||
"tag": "0001_damp_captain_midlands",
|
|
||||||
"breakpoints": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idx": 2,
|
|
||||||
"version": "7",
|
|
||||||
"when": 1734694545302,
|
|
||||||
"tag": "0002_chemical_whiplash",
|
|
||||||
"breakpoints": true
|
"breakpoints": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -2,6 +2,8 @@ import { drizzle } from "drizzle-orm/node-postgres";
|
|||||||
import pg from "pg";
|
import pg from "pg";
|
||||||
import * as schema from "./schema.ts";
|
import * as schema from "./schema.ts";
|
||||||
|
|
||||||
|
import { migrate } from "drizzle-orm/node-postgres/migrator";
|
||||||
|
|
||||||
// Use pg driver.
|
// Use pg driver.
|
||||||
const { Pool } = pg;
|
const { Pool } = pg;
|
||||||
|
|
||||||
@ -13,3 +15,7 @@ export const db = drizzle({
|
|||||||
}),
|
}),
|
||||||
schema,
|
schema,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
export function migrateDb() {
|
||||||
|
return migrate(db, { migrationsFolder: "drizzle" });
|
||||||
|
}
|
||||||
|
@ -5,6 +5,7 @@ import { cors } from "hono/cors";
|
|||||||
import { OpenAPIHono } from "@hono/zod-openapi";
|
import { OpenAPIHono } from "@hono/zod-openapi";
|
||||||
import { nodeRouter } from "./routes/node/node.controller.ts";
|
import { nodeRouter } from "./routes/node/node.controller.ts";
|
||||||
import { userRouter } from "./routes/user/user.controller.ts";
|
import { userRouter } from "./routes/user/user.controller.ts";
|
||||||
|
import { migrateDb } from "./db/db.ts";
|
||||||
|
|
||||||
const router = new OpenAPIHono();
|
const router = new OpenAPIHono();
|
||||||
|
|
||||||
@ -26,10 +27,11 @@ router.get("/ui", swaggerUI({ url: "/openapi.json" }));
|
|||||||
Deno.serve(router.fetch);
|
Deno.serve(router.fetch);
|
||||||
|
|
||||||
async function init() {
|
async function init() {
|
||||||
|
await migrateDb();
|
||||||
|
await createUser("max");
|
||||||
|
|
||||||
const openapi = await router.request("/openapi.json");
|
const openapi = await router.request("/openapi.json");
|
||||||
const json = await openapi.text();
|
const json = await openapi.text();
|
||||||
Deno.writeTextFile("openapi.json", json);
|
Deno.writeTextFile("openapi.json", json);
|
||||||
|
|
||||||
await createUser("max");
|
|
||||||
}
|
}
|
||||||
await init();
|
await init();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user