Skip to content

Commit

Permalink
dev: improvement checkpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
eric-crowell committed Aug 18, 2024
1 parent 49a1e7b commit 627d919
Show file tree
Hide file tree
Showing 17 changed files with 166 additions and 127 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"private": true,
"version": "0.0.0",
"description": "do-ob workspace for core components",
"packageManager": "pnpm@9.2.0",
"packageManager": "pnpm@9.7.1+sha512.faf344af2d6ca65c4c5c8c2224ea77a81a5e8859cbc4e06b1511ddce2f0151512431dd19e6aff31f2c6a8f5f2aced9bd2273e1fed7dd4de1868984059d2c4247",
"type": "module",
"scripts": {
"test": "pnpm --filter './packages/*' test",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ dotenv.config();

export default {
schema: './src/schema/core.ts',
out: './_migrations',
out: './_migration_core',
dialect: 'postgresql',
dbCredentials: {
url: process.env.DATABASE_CONNECTION || 'file://./pglite',
url: process.env.DATABASE_CONNECTION || 'memory://./pglite',
},
} satisfies Config;
13 changes: 13 additions & 0 deletions packages/data/drizzle.config.web.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import type { Config } from 'drizzle-kit';
import * as dotenv from 'dotenv';

dotenv.config();

export default {
schema: './src/schema/web.ts',
out: './_migration_web',
dialect: 'postgresql',
dbCredentials: {
url: process.env.DATABASE_CONNECTION || 'memory://./pglite',
},
} satisfies Config;
22 changes: 22 additions & 0 deletions packages/data/generate.post.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import fs from 'node:fs';
import path from 'node:path';

const scriptsPath = path.resolve(import.meta.url, './scripts');

// Copy the *.sql file from _migration_core to scripts core.sql. Overwrite if it exists. Ensure that paths are relative to where this script exists.
const coreMigrationPath = path.resolve(import.meta.url, './_migration_core');
const coreSql = path.resolve(scriptsPath, './core.sql');
if (fs.existsSync(coreMigrationPath) && fs.existsSync(scriptsPath)) {
fs.copyFileSync(coreMigrationPath, coreSql);
// Remove the _migration_core directory.
fs.rmdirSync(coreMigrationPath, { recursive: true });
}

// Copy the *.sql file from _migration_web to scripts web.sql. Overwrite if it exists. Ensure that paths are relative to where this script exists.
const webMigrationPath = path.resolve(import.meta.url, './_migration_web');
const webSql = path.resolve(scriptsPath, './web.sql');
if (fs.existsSync(webMigrationPath) && fs.existsSync(scriptsPath)) {
fs.copyFileSync(webMigrationPath, webSql);
// Remove the _migration_web directory.
fs.rmdirSync(webMigrationPath, { recursive: true });
}
5 changes: 4 additions & 1 deletion packages/data/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,10 @@
"scripts": {
"build": "vite build --mode production",
"test": "vitest --run",
"generate": "drizzle-kit generate",
"generate": "pnpm generate:core && pnpm generate:web",
"generate:core": "drizzle-kit generate --config ./drizzle.config.core.ts && pnpm generate:post",
"generate:web": "drizzle-kit generate --config ./drizzle.config.web.ts && pnpm generate:post",
"generate:post": "tsx ./generate.post.ts",
"push": "drizzle-kit push"
},
"dependencies": {
Expand Down
150 changes: 69 additions & 81 deletions packages/data/scripts/data.sql → packages/data/scripts/core.sql
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,6 @@ EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
CREATE TYPE "public"."mutate_operation" AS ENUM('insert', 'update', 'remove');
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
CREATE TYPE "public"."system_type" AS ENUM('boolean', 'number', 'string');
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "action" (
"id" varchar(64) PRIMARY KEY NOT NULL,
"definition" jsonb NOT NULL,
Expand All @@ -34,6 +22,17 @@ CREATE TABLE IF NOT EXISTS "dispatch" (
"message" text
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "entity" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"type" varchar(64),
"created" timestamp DEFAULT now() NOT NULL,
"updated" timestamp DEFAULT now() NOT NULL,
"public" boolean DEFAULT false NOT NULL,
"deleted" boolean DEFAULT false NOT NULL,
"owner_id" uuid,
"creator_id" uuid
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "entity_credential" (
"id" uuid PRIMARY KEY NOT NULL,
"client_id" varchar(64) NOT NULL,
Expand All @@ -58,6 +57,37 @@ CREATE TABLE IF NOT EXISTS "entity_email" (
CONSTRAINT "entity_email_address_unique" UNIQUE("address")
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "entity_file" (
"id" uuid PRIMARY KEY NOT NULL,
"name" varchar(32) NOT NULL,
"description" varchar(1024),
"mime_type" varchar(64) NOT NULL,
"size" bigint NOT NULL,
"path" varchar(2048),
CONSTRAINT "entity_file_name_unique" UNIQUE("name")
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "entity_file_audio" (
"id" uuid PRIMARY KEY NOT NULL,
"length" integer NOT NULL,
"volume" smallint NOT NULL
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "entity_file_image" (
"id" uuid PRIMARY KEY NOT NULL,
"height" smallint NOT NULL,
"width" smallint NOT NULL,
"animated" boolean DEFAULT false NOT NULL,
"frames" smallint
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "entity_file_video" (
"id" uuid PRIMARY KEY NOT NULL,
"height" smallint NOT NULL,
"width" smallint NOT NULL,
"length" integer NOT NULL
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "entity_locale" (
"id" uuid PRIMARY KEY NOT NULL,
"code" varchar(8) NOT NULL,
Expand Down Expand Up @@ -119,59 +149,17 @@ CREATE TABLE IF NOT EXISTS "entity_user" (
CONSTRAINT "entity_user_name_unique" UNIQUE("name")
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "entity" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"type" varchar(64),
"created" timestamp DEFAULT now() NOT NULL,
"updated" timestamp DEFAULT now() NOT NULL,
"public" boolean DEFAULT false NOT NULL,
"deleted" boolean DEFAULT false NOT NULL,
"owner_id" uuid,
"creator_id" uuid
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "entity_file_audio" (
"id" uuid PRIMARY KEY NOT NULL,
"length" integer NOT NULL,
"volume" smallint NOT NULL
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "entity_file_image" (
"id" uuid PRIMARY KEY NOT NULL,
"height" smallint NOT NULL,
"width" smallint NOT NULL,
"animated" boolean DEFAULT false NOT NULL,
"frames" smallint
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "entity_file_video" (
"id" uuid PRIMARY KEY NOT NULL,
"height" smallint NOT NULL,
"width" smallint NOT NULL,
"length" integer NOT NULL
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "entity_file" (
"id" uuid PRIMARY KEY NOT NULL,
"name" varchar(32) NOT NULL,
"description" varchar(1024),
"mime_type" varchar(64) NOT NULL,
"size" bigint NOT NULL,
"path" varchar(2048),
CONSTRAINT "entity_file_name_unique" UNIQUE("name")
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "join_assignment" (
"entity_id" uuid NOT NULL,
"role_id" uuid NOT NULL,
CONSTRAINT "join_assignment_entity_id_role_id_pk" PRIMARY KEY("entity_id","role_id")
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "entitle" (
CREATE TABLE IF NOT EXISTS "join_entitle" (
"entity_id" uuid NOT NULL,
"target_id" uuid NOT NULL,
"action_id" varchar(64) NOT NULL,
CONSTRAINT "entitle_entity_id_target_id_action_id_pk" PRIMARY KEY("entity_id","target_id","action_id")
CONSTRAINT "join_entitle_entity_id_target_id_action_id_pk" PRIMARY KEY("entity_id","target_id","action_id")
);
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "mutate" (
Expand All @@ -198,8 +186,8 @@ CREATE TABLE IF NOT EXISTS "storage" (
--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "system" (
"id" varchar PRIMARY KEY NOT NULL,
"type" "system_type" NOT NULL,
"value" text NOT NULL,
"pattern" varchar(64),
"description" text
);
--> statement-breakpoint
Expand Down Expand Up @@ -252,109 +240,109 @@ EXCEPTION
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "entity_locale" ADD CONSTRAINT "entity_locale_id_entity_id_fk" FOREIGN KEY ("id") REFERENCES "public"."entity"("id") ON DELETE cascade ON UPDATE no action;
ALTER TABLE "entity_file" ADD CONSTRAINT "entity_file_id_entity_id_fk" FOREIGN KEY ("id") REFERENCES "public"."entity"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "permit" ADD CONSTRAINT "permit_id_entity_id_fk" FOREIGN KEY ("id") REFERENCES "public"."entity"("id") ON DELETE cascade ON UPDATE no action;
ALTER TABLE "entity_file_audio" ADD CONSTRAINT "entity_file_audio_id_entity_file_id_fk" FOREIGN KEY ("id") REFERENCES "public"."entity_file"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "permit" ADD CONSTRAINT "permit_entity_id_entity_id_fk" FOREIGN KEY ("entity_id") REFERENCES "public"."entity"("id") ON DELETE cascade ON UPDATE no action;
ALTER TABLE "entity_file_image" ADD CONSTRAINT "entity_file_image_id_entity_file_id_fk" FOREIGN KEY ("id") REFERENCES "public"."entity_file"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "permit" ADD CONSTRAINT "permit_action_id_action_id_fk" FOREIGN KEY ("action_id") REFERENCES "public"."action"("id") ON DELETE cascade ON UPDATE no action;
ALTER TABLE "entity_file_video" ADD CONSTRAINT "entity_file_video_id_entity_file_id_fk" FOREIGN KEY ("id") REFERENCES "public"."entity_file"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "entity_phone" ADD CONSTRAINT "entity_phone_id_entity_id_fk" FOREIGN KEY ("id") REFERENCES "public"."entity"("id") ON DELETE cascade ON UPDATE no action;
ALTER TABLE "entity_locale" ADD CONSTRAINT "entity_locale_id_entity_id_fk" FOREIGN KEY ("id") REFERENCES "public"."entity"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "entity_phone" ADD CONSTRAINT "entity_phone_user_id_entity_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."entity_user"("id") ON DELETE no action ON UPDATE no action;
ALTER TABLE "permit" ADD CONSTRAINT "permit_id_entity_id_fk" FOREIGN KEY ("id") REFERENCES "public"."entity"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "entity_profile" ADD CONSTRAINT "entity_profile_id_entity_id_fk" FOREIGN KEY ("id") REFERENCES "public"."entity"("id") ON DELETE cascade ON UPDATE no action;
ALTER TABLE "permit" ADD CONSTRAINT "permit_entity_id_entity_id_fk" FOREIGN KEY ("entity_id") REFERENCES "public"."entity"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "entity_profile" ADD CONSTRAINT "entity_profile_user_id_entity_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."entity_user"("id") ON DELETE no action ON UPDATE no action;
ALTER TABLE "permit" ADD CONSTRAINT "permit_action_id_action_id_fk" FOREIGN KEY ("action_id") REFERENCES "public"."action"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "entity_profile" ADD CONSTRAINT "entity_profile_picture_id_entity_file_image_id_fk" FOREIGN KEY ("picture_id") REFERENCES "public"."entity_file_image"("id") ON DELETE no action ON UPDATE no action;
ALTER TABLE "entity_phone" ADD CONSTRAINT "entity_phone_id_entity_id_fk" FOREIGN KEY ("id") REFERENCES "public"."entity"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "entity_profile" ADD CONSTRAINT "entity_profile_cover_id_entity_file_image_id_fk" FOREIGN KEY ("cover_id") REFERENCES "public"."entity_file_image"("id") ON DELETE no action ON UPDATE no action;
ALTER TABLE "entity_phone" ADD CONSTRAINT "entity_phone_user_id_entity_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."entity_user"("id") ON DELETE no action ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "entity_role" ADD CONSTRAINT "entity_role_id_entity_id_fk" FOREIGN KEY ("id") REFERENCES "public"."entity"("id") ON DELETE cascade ON UPDATE no action;
ALTER TABLE "entity_profile" ADD CONSTRAINT "entity_profile_id_entity_id_fk" FOREIGN KEY ("id") REFERENCES "public"."entity"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "entity_role" ADD CONSTRAINT "entity_role_avatar_id_entity_file_image_id_fk" FOREIGN KEY ("avatar_id") REFERENCES "public"."entity_file_image"("id") ON DELETE no action ON UPDATE no action;
ALTER TABLE "entity_profile" ADD CONSTRAINT "entity_profile_user_id_entity_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."entity_user"("id") ON DELETE no action ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "entity_user" ADD CONSTRAINT "entity_user_id_entity_id_fk" FOREIGN KEY ("id") REFERENCES "public"."entity"("id") ON DELETE cascade ON UPDATE no action;
ALTER TABLE "entity_profile" ADD CONSTRAINT "entity_profile_picture_id_entity_file_image_id_fk" FOREIGN KEY ("picture_id") REFERENCES "public"."entity_file_image"("id") ON DELETE no action ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "entity_user" ADD CONSTRAINT "entity_user_avatar_id_entity_file_image_id_fk" FOREIGN KEY ("avatar_id") REFERENCES "public"."entity_file_image"("id") ON DELETE no action ON UPDATE no action;
ALTER TABLE "entity_profile" ADD CONSTRAINT "entity_profile_cover_id_entity_file_image_id_fk" FOREIGN KEY ("cover_id") REFERENCES "public"."entity_file_image"("id") ON DELETE no action ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "entity_file_audio" ADD CONSTRAINT "entity_file_audio_id_entity_file_id_fk" FOREIGN KEY ("id") REFERENCES "public"."entity_file"("id") ON DELETE cascade ON UPDATE no action;
ALTER TABLE "entity_role" ADD CONSTRAINT "entity_role_id_entity_id_fk" FOREIGN KEY ("id") REFERENCES "public"."entity"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "entity_file_image" ADD CONSTRAINT "entity_file_image_id_entity_file_id_fk" FOREIGN KEY ("id") REFERENCES "public"."entity_file"("id") ON DELETE cascade ON UPDATE no action;
ALTER TABLE "entity_role" ADD CONSTRAINT "entity_role_avatar_id_entity_file_image_id_fk" FOREIGN KEY ("avatar_id") REFERENCES "public"."entity_file_image"("id") ON DELETE no action ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "entity_file_video" ADD CONSTRAINT "entity_file_video_id_entity_file_id_fk" FOREIGN KEY ("id") REFERENCES "public"."entity_file"("id") ON DELETE cascade ON UPDATE no action;
ALTER TABLE "entity_user" ADD CONSTRAINT "entity_user_id_entity_id_fk" FOREIGN KEY ("id") REFERENCES "public"."entity"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "entity_file" ADD CONSTRAINT "entity_file_id_entity_id_fk" FOREIGN KEY ("id") REFERENCES "public"."entity"("id") ON DELETE cascade ON UPDATE no action;
ALTER TABLE "entity_user" ADD CONSTRAINT "entity_user_avatar_id_entity_file_image_id_fk" FOREIGN KEY ("avatar_id") REFERENCES "public"."entity_file_image"("id") ON DELETE no action ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
Expand All @@ -372,19 +360,19 @@ EXCEPTION
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "entitle" ADD CONSTRAINT "entitle_entity_id_entity_id_fk" FOREIGN KEY ("entity_id") REFERENCES "public"."entity"("id") ON DELETE no action ON UPDATE no action;
ALTER TABLE "join_entitle" ADD CONSTRAINT "join_entitle_entity_id_entity_id_fk" FOREIGN KEY ("entity_id") REFERENCES "public"."entity"("id") ON DELETE no action ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "entitle" ADD CONSTRAINT "entitle_target_id_entity_id_fk" FOREIGN KEY ("target_id") REFERENCES "public"."entity"("id") ON DELETE no action ON UPDATE no action;
ALTER TABLE "join_entitle" ADD CONSTRAINT "join_entitle_target_id_entity_id_fk" FOREIGN KEY ("target_id") REFERENCES "public"."entity"("id") ON DELETE no action ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "entitle" ADD CONSTRAINT "entitle_action_id_action_id_fk" FOREIGN KEY ("action_id") REFERENCES "public"."action"("id") ON DELETE no action ON UPDATE no action;
ALTER TABLE "join_entitle" ADD CONSTRAINT "join_entitle_action_id_action_id_fk" FOREIGN KEY ("action_id") REFERENCES "public"."action"("id") ON DELETE no action ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
Expand All @@ -403,10 +391,10 @@ END $$;
--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "credential_client_id_idx" ON "entity_credential" USING btree ("client_id");--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "email_address_idx" ON "entity_email" USING btree ("address");--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "file_name_idx" ON "entity_file" USING btree ("name");--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "file_path_idx" ON "entity_file" USING btree ("path");--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "locale_code_idx" ON "entity_locale" USING btree ("code");--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "locale_name_idx" ON "entity_locale" USING btree ("name");--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "profile_given_name_idx" ON "entity_profile" USING btree ("given_name");--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "profile_family_name_idx" ON "entity_profile" USING btree ("family_name");--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "user_name_idx" ON "entity_user" USING btree ("name");--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "file_name_idx" ON "entity_file" USING btree ("name");--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "file_path_idx" ON "entity_file" USING btree ("path");
CREATE INDEX IF NOT EXISTS "user_name_idx" ON "entity_user" USING btree ("name");
15 changes: 15 additions & 0 deletions packages/data/scripts/web.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
CREATE TABLE IF NOT EXISTS "thing" (
"id" serial PRIMARY KEY NOT NULL,
"name" varchar(255) NOT NULL,
"description" text,
"url" varchar(2083),
"same_as" varchar(2083),
"identifier" varchar(255),
"image" varchar(2083),
"additional_type" varchar(2083),
"alternate_name" varchar(255),
"disambiguating_description" text,
"main_entity_of_page" varchar(2083),
"date_created" timestamp DEFAULT now(),
"date_modified" timestamp DEFAULT now()
);
Loading

0 comments on commit 627d919

Please sign in to comment.