WIP! A BB-style forum, on the ATmosphere! We're still working... we'll be back soon when we have something to show off!
node typescript hono htmx atproto

feat(appview): add drizzle-kit config and generate initial migration

+810 -1
+7
packages/appview/drizzle.config.ts
··· 1 + import { defineConfig } from "drizzle-kit"; 2 + 3 + export default defineConfig({ 4 + schema: "./src/db/schema.ts", 5 + out: "./drizzle", 6 + dialect: "postgresql", 7 + });
+91
packages/appview/drizzle/0000_lovely_roland_deschain.sql
··· 1 + CREATE TABLE "categories" ( 2 + "id" bigserial PRIMARY KEY NOT NULL, 3 + "did" text NOT NULL, 4 + "rkey" text NOT NULL, 5 + "cid" text NOT NULL, 6 + "name" text NOT NULL, 7 + "description" text, 8 + "slug" text, 9 + "sort_order" integer, 10 + "forum_id" bigint, 11 + "created_at" timestamp with time zone NOT NULL, 12 + "indexed_at" timestamp with time zone NOT NULL 13 + ); 14 + --> statement-breakpoint 15 + CREATE TABLE "forums" ( 16 + "id" bigserial PRIMARY KEY NOT NULL, 17 + "did" text NOT NULL, 18 + "rkey" text NOT NULL, 19 + "cid" text NOT NULL, 20 + "name" text NOT NULL, 21 + "description" text, 22 + "indexed_at" timestamp with time zone NOT NULL 23 + ); 24 + --> statement-breakpoint 25 + CREATE TABLE "memberships" ( 26 + "id" bigserial PRIMARY KEY NOT NULL, 27 + "did" text NOT NULL, 28 + "rkey" text NOT NULL, 29 + "cid" text NOT NULL, 30 + "forum_id" bigint, 31 + "forum_uri" text NOT NULL, 32 + "role" text, 33 + "role_uri" text, 34 + "joined_at" timestamp with time zone, 35 + "created_at" timestamp with time zone NOT NULL, 36 + "indexed_at" timestamp with time zone NOT NULL 37 + ); 38 + --> statement-breakpoint 39 + CREATE TABLE "mod_actions" ( 40 + "id" bigserial PRIMARY KEY NOT NULL, 41 + "did" text NOT NULL, 42 + "rkey" text NOT NULL, 43 + "cid" text NOT NULL, 44 + "action" text NOT NULL, 45 + "subject_did" text, 46 + "subject_post_uri" text, 47 + "forum_id" bigint, 48 + "reason" text, 49 + "created_by" text NOT NULL, 50 + "expires_at" timestamp with time zone, 51 + "created_at" timestamp with time zone NOT NULL, 52 + "indexed_at" timestamp with time zone NOT NULL 53 + ); 54 + --> statement-breakpoint 55 + CREATE TABLE "posts" ( 56 + "id" bigserial PRIMARY KEY NOT NULL, 57 + "did" text NOT NULL, 58 + "rkey" text NOT NULL, 59 + "cid" text NOT NULL, 60 + "text" text NOT NULL, 61 + "forum_uri" text, 62 + "root_post_id" bigint, 63 + "parent_post_id" bigint, 64 + "root_uri" text, 65 + "parent_uri" text, 66 + "created_at" timestamp with time zone NOT NULL, 67 + "indexed_at" timestamp with time zone NOT NULL, 68 + "deleted" boolean DEFAULT false NOT NULL 69 + ); 70 + --> statement-breakpoint 71 + CREATE TABLE "users" ( 72 + "did" text PRIMARY KEY NOT NULL, 73 + "handle" text, 74 + "indexed_at" timestamp with time zone NOT NULL 75 + ); 76 + --> statement-breakpoint 77 + ALTER TABLE "categories" ADD CONSTRAINT "categories_forum_id_forums_id_fk" FOREIGN KEY ("forum_id") REFERENCES "public"."forums"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint 78 + ALTER TABLE "memberships" ADD CONSTRAINT "memberships_did_users_did_fk" FOREIGN KEY ("did") REFERENCES "public"."users"("did") ON DELETE no action ON UPDATE no action;--> statement-breakpoint 79 + ALTER TABLE "memberships" ADD CONSTRAINT "memberships_forum_id_forums_id_fk" FOREIGN KEY ("forum_id") REFERENCES "public"."forums"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint 80 + ALTER TABLE "mod_actions" ADD CONSTRAINT "mod_actions_forum_id_forums_id_fk" FOREIGN KEY ("forum_id") REFERENCES "public"."forums"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint 81 + ALTER TABLE "posts" ADD CONSTRAINT "posts_did_users_did_fk" FOREIGN KEY ("did") REFERENCES "public"."users"("did") ON DELETE no action ON UPDATE no action;--> statement-breakpoint 82 + ALTER TABLE "posts" ADD CONSTRAINT "posts_root_post_id_posts_id_fk" FOREIGN KEY ("root_post_id") REFERENCES "public"."posts"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint 83 + ALTER TABLE "posts" ADD CONSTRAINT "posts_parent_post_id_posts_id_fk" FOREIGN KEY ("parent_post_id") REFERENCES "public"."posts"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint 84 + CREATE UNIQUE INDEX "categories_did_rkey_idx" ON "categories" USING btree ("did","rkey");--> statement-breakpoint 85 + CREATE UNIQUE INDEX "forums_did_rkey_idx" ON "forums" USING btree ("did","rkey");--> statement-breakpoint 86 + CREATE UNIQUE INDEX "memberships_did_rkey_idx" ON "memberships" USING btree ("did","rkey");--> statement-breakpoint 87 + CREATE INDEX "memberships_did_idx" ON "memberships" USING btree ("did");--> statement-breakpoint 88 + CREATE UNIQUE INDEX "mod_actions_did_rkey_idx" ON "mod_actions" USING btree ("did","rkey");--> statement-breakpoint 89 + CREATE UNIQUE INDEX "posts_did_rkey_idx" ON "posts" USING btree ("did","rkey");--> statement-breakpoint 90 + CREATE INDEX "posts_forum_uri_idx" ON "posts" USING btree ("forum_uri");--> statement-breakpoint 91 + CREATE INDEX "posts_root_post_id_idx" ON "posts" USING btree ("root_post_id");
+696
packages/appview/drizzle/meta/0000_snapshot.json
··· 1 + { 2 + "id": "c52ee650-b32a-4fd5-8523-4a8f39586ccc", 3 + "prevId": "00000000-0000-0000-0000-000000000000", 4 + "version": "7", 5 + "dialect": "postgresql", 6 + "tables": { 7 + "public.categories": { 8 + "name": "categories", 9 + "schema": "", 10 + "columns": { 11 + "id": { 12 + "name": "id", 13 + "type": "bigserial", 14 + "primaryKey": true, 15 + "notNull": true 16 + }, 17 + "did": { 18 + "name": "did", 19 + "type": "text", 20 + "primaryKey": false, 21 + "notNull": true 22 + }, 23 + "rkey": { 24 + "name": "rkey", 25 + "type": "text", 26 + "primaryKey": false, 27 + "notNull": true 28 + }, 29 + "cid": { 30 + "name": "cid", 31 + "type": "text", 32 + "primaryKey": false, 33 + "notNull": true 34 + }, 35 + "name": { 36 + "name": "name", 37 + "type": "text", 38 + "primaryKey": false, 39 + "notNull": true 40 + }, 41 + "description": { 42 + "name": "description", 43 + "type": "text", 44 + "primaryKey": false, 45 + "notNull": false 46 + }, 47 + "slug": { 48 + "name": "slug", 49 + "type": "text", 50 + "primaryKey": false, 51 + "notNull": false 52 + }, 53 + "sort_order": { 54 + "name": "sort_order", 55 + "type": "integer", 56 + "primaryKey": false, 57 + "notNull": false 58 + }, 59 + "forum_id": { 60 + "name": "forum_id", 61 + "type": "bigint", 62 + "primaryKey": false, 63 + "notNull": false 64 + }, 65 + "created_at": { 66 + "name": "created_at", 67 + "type": "timestamp with time zone", 68 + "primaryKey": false, 69 + "notNull": true 70 + }, 71 + "indexed_at": { 72 + "name": "indexed_at", 73 + "type": "timestamp with time zone", 74 + "primaryKey": false, 75 + "notNull": true 76 + } 77 + }, 78 + "indexes": { 79 + "categories_did_rkey_idx": { 80 + "name": "categories_did_rkey_idx", 81 + "columns": [ 82 + { 83 + "expression": "did", 84 + "isExpression": false, 85 + "asc": true, 86 + "nulls": "last" 87 + }, 88 + { 89 + "expression": "rkey", 90 + "isExpression": false, 91 + "asc": true, 92 + "nulls": "last" 93 + } 94 + ], 95 + "isUnique": true, 96 + "concurrently": false, 97 + "method": "btree", 98 + "with": {} 99 + } 100 + }, 101 + "foreignKeys": { 102 + "categories_forum_id_forums_id_fk": { 103 + "name": "categories_forum_id_forums_id_fk", 104 + "tableFrom": "categories", 105 + "tableTo": "forums", 106 + "columnsFrom": [ 107 + "forum_id" 108 + ], 109 + "columnsTo": [ 110 + "id" 111 + ], 112 + "onDelete": "no action", 113 + "onUpdate": "no action" 114 + } 115 + }, 116 + "compositePrimaryKeys": {}, 117 + "uniqueConstraints": {}, 118 + "policies": {}, 119 + "checkConstraints": {}, 120 + "isRLSEnabled": false 121 + }, 122 + "public.forums": { 123 + "name": "forums", 124 + "schema": "", 125 + "columns": { 126 + "id": { 127 + "name": "id", 128 + "type": "bigserial", 129 + "primaryKey": true, 130 + "notNull": true 131 + }, 132 + "did": { 133 + "name": "did", 134 + "type": "text", 135 + "primaryKey": false, 136 + "notNull": true 137 + }, 138 + "rkey": { 139 + "name": "rkey", 140 + "type": "text", 141 + "primaryKey": false, 142 + "notNull": true 143 + }, 144 + "cid": { 145 + "name": "cid", 146 + "type": "text", 147 + "primaryKey": false, 148 + "notNull": true 149 + }, 150 + "name": { 151 + "name": "name", 152 + "type": "text", 153 + "primaryKey": false, 154 + "notNull": true 155 + }, 156 + "description": { 157 + "name": "description", 158 + "type": "text", 159 + "primaryKey": false, 160 + "notNull": false 161 + }, 162 + "indexed_at": { 163 + "name": "indexed_at", 164 + "type": "timestamp with time zone", 165 + "primaryKey": false, 166 + "notNull": true 167 + } 168 + }, 169 + "indexes": { 170 + "forums_did_rkey_idx": { 171 + "name": "forums_did_rkey_idx", 172 + "columns": [ 173 + { 174 + "expression": "did", 175 + "isExpression": false, 176 + "asc": true, 177 + "nulls": "last" 178 + }, 179 + { 180 + "expression": "rkey", 181 + "isExpression": false, 182 + "asc": true, 183 + "nulls": "last" 184 + } 185 + ], 186 + "isUnique": true, 187 + "concurrently": false, 188 + "method": "btree", 189 + "with": {} 190 + } 191 + }, 192 + "foreignKeys": {}, 193 + "compositePrimaryKeys": {}, 194 + "uniqueConstraints": {}, 195 + "policies": {}, 196 + "checkConstraints": {}, 197 + "isRLSEnabled": false 198 + }, 199 + "public.memberships": { 200 + "name": "memberships", 201 + "schema": "", 202 + "columns": { 203 + "id": { 204 + "name": "id", 205 + "type": "bigserial", 206 + "primaryKey": true, 207 + "notNull": true 208 + }, 209 + "did": { 210 + "name": "did", 211 + "type": "text", 212 + "primaryKey": false, 213 + "notNull": true 214 + }, 215 + "rkey": { 216 + "name": "rkey", 217 + "type": "text", 218 + "primaryKey": false, 219 + "notNull": true 220 + }, 221 + "cid": { 222 + "name": "cid", 223 + "type": "text", 224 + "primaryKey": false, 225 + "notNull": true 226 + }, 227 + "forum_id": { 228 + "name": "forum_id", 229 + "type": "bigint", 230 + "primaryKey": false, 231 + "notNull": false 232 + }, 233 + "forum_uri": { 234 + "name": "forum_uri", 235 + "type": "text", 236 + "primaryKey": false, 237 + "notNull": true 238 + }, 239 + "role": { 240 + "name": "role", 241 + "type": "text", 242 + "primaryKey": false, 243 + "notNull": false 244 + }, 245 + "role_uri": { 246 + "name": "role_uri", 247 + "type": "text", 248 + "primaryKey": false, 249 + "notNull": false 250 + }, 251 + "joined_at": { 252 + "name": "joined_at", 253 + "type": "timestamp with time zone", 254 + "primaryKey": false, 255 + "notNull": false 256 + }, 257 + "created_at": { 258 + "name": "created_at", 259 + "type": "timestamp with time zone", 260 + "primaryKey": false, 261 + "notNull": true 262 + }, 263 + "indexed_at": { 264 + "name": "indexed_at", 265 + "type": "timestamp with time zone", 266 + "primaryKey": false, 267 + "notNull": true 268 + } 269 + }, 270 + "indexes": { 271 + "memberships_did_rkey_idx": { 272 + "name": "memberships_did_rkey_idx", 273 + "columns": [ 274 + { 275 + "expression": "did", 276 + "isExpression": false, 277 + "asc": true, 278 + "nulls": "last" 279 + }, 280 + { 281 + "expression": "rkey", 282 + "isExpression": false, 283 + "asc": true, 284 + "nulls": "last" 285 + } 286 + ], 287 + "isUnique": true, 288 + "concurrently": false, 289 + "method": "btree", 290 + "with": {} 291 + }, 292 + "memberships_did_idx": { 293 + "name": "memberships_did_idx", 294 + "columns": [ 295 + { 296 + "expression": "did", 297 + "isExpression": false, 298 + "asc": true, 299 + "nulls": "last" 300 + } 301 + ], 302 + "isUnique": false, 303 + "concurrently": false, 304 + "method": "btree", 305 + "with": {} 306 + } 307 + }, 308 + "foreignKeys": { 309 + "memberships_did_users_did_fk": { 310 + "name": "memberships_did_users_did_fk", 311 + "tableFrom": "memberships", 312 + "tableTo": "users", 313 + "columnsFrom": [ 314 + "did" 315 + ], 316 + "columnsTo": [ 317 + "did" 318 + ], 319 + "onDelete": "no action", 320 + "onUpdate": "no action" 321 + }, 322 + "memberships_forum_id_forums_id_fk": { 323 + "name": "memberships_forum_id_forums_id_fk", 324 + "tableFrom": "memberships", 325 + "tableTo": "forums", 326 + "columnsFrom": [ 327 + "forum_id" 328 + ], 329 + "columnsTo": [ 330 + "id" 331 + ], 332 + "onDelete": "no action", 333 + "onUpdate": "no action" 334 + } 335 + }, 336 + "compositePrimaryKeys": {}, 337 + "uniqueConstraints": {}, 338 + "policies": {}, 339 + "checkConstraints": {}, 340 + "isRLSEnabled": false 341 + }, 342 + "public.mod_actions": { 343 + "name": "mod_actions", 344 + "schema": "", 345 + "columns": { 346 + "id": { 347 + "name": "id", 348 + "type": "bigserial", 349 + "primaryKey": true, 350 + "notNull": true 351 + }, 352 + "did": { 353 + "name": "did", 354 + "type": "text", 355 + "primaryKey": false, 356 + "notNull": true 357 + }, 358 + "rkey": { 359 + "name": "rkey", 360 + "type": "text", 361 + "primaryKey": false, 362 + "notNull": true 363 + }, 364 + "cid": { 365 + "name": "cid", 366 + "type": "text", 367 + "primaryKey": false, 368 + "notNull": true 369 + }, 370 + "action": { 371 + "name": "action", 372 + "type": "text", 373 + "primaryKey": false, 374 + "notNull": true 375 + }, 376 + "subject_did": { 377 + "name": "subject_did", 378 + "type": "text", 379 + "primaryKey": false, 380 + "notNull": false 381 + }, 382 + "subject_post_uri": { 383 + "name": "subject_post_uri", 384 + "type": "text", 385 + "primaryKey": false, 386 + "notNull": false 387 + }, 388 + "forum_id": { 389 + "name": "forum_id", 390 + "type": "bigint", 391 + "primaryKey": false, 392 + "notNull": false 393 + }, 394 + "reason": { 395 + "name": "reason", 396 + "type": "text", 397 + "primaryKey": false, 398 + "notNull": false 399 + }, 400 + "created_by": { 401 + "name": "created_by", 402 + "type": "text", 403 + "primaryKey": false, 404 + "notNull": true 405 + }, 406 + "expires_at": { 407 + "name": "expires_at", 408 + "type": "timestamp with time zone", 409 + "primaryKey": false, 410 + "notNull": false 411 + }, 412 + "created_at": { 413 + "name": "created_at", 414 + "type": "timestamp with time zone", 415 + "primaryKey": false, 416 + "notNull": true 417 + }, 418 + "indexed_at": { 419 + "name": "indexed_at", 420 + "type": "timestamp with time zone", 421 + "primaryKey": false, 422 + "notNull": true 423 + } 424 + }, 425 + "indexes": { 426 + "mod_actions_did_rkey_idx": { 427 + "name": "mod_actions_did_rkey_idx", 428 + "columns": [ 429 + { 430 + "expression": "did", 431 + "isExpression": false, 432 + "asc": true, 433 + "nulls": "last" 434 + }, 435 + { 436 + "expression": "rkey", 437 + "isExpression": false, 438 + "asc": true, 439 + "nulls": "last" 440 + } 441 + ], 442 + "isUnique": true, 443 + "concurrently": false, 444 + "method": "btree", 445 + "with": {} 446 + } 447 + }, 448 + "foreignKeys": { 449 + "mod_actions_forum_id_forums_id_fk": { 450 + "name": "mod_actions_forum_id_forums_id_fk", 451 + "tableFrom": "mod_actions", 452 + "tableTo": "forums", 453 + "columnsFrom": [ 454 + "forum_id" 455 + ], 456 + "columnsTo": [ 457 + "id" 458 + ], 459 + "onDelete": "no action", 460 + "onUpdate": "no action" 461 + } 462 + }, 463 + "compositePrimaryKeys": {}, 464 + "uniqueConstraints": {}, 465 + "policies": {}, 466 + "checkConstraints": {}, 467 + "isRLSEnabled": false 468 + }, 469 + "public.posts": { 470 + "name": "posts", 471 + "schema": "", 472 + "columns": { 473 + "id": { 474 + "name": "id", 475 + "type": "bigserial", 476 + "primaryKey": true, 477 + "notNull": true 478 + }, 479 + "did": { 480 + "name": "did", 481 + "type": "text", 482 + "primaryKey": false, 483 + "notNull": true 484 + }, 485 + "rkey": { 486 + "name": "rkey", 487 + "type": "text", 488 + "primaryKey": false, 489 + "notNull": true 490 + }, 491 + "cid": { 492 + "name": "cid", 493 + "type": "text", 494 + "primaryKey": false, 495 + "notNull": true 496 + }, 497 + "text": { 498 + "name": "text", 499 + "type": "text", 500 + "primaryKey": false, 501 + "notNull": true 502 + }, 503 + "forum_uri": { 504 + "name": "forum_uri", 505 + "type": "text", 506 + "primaryKey": false, 507 + "notNull": false 508 + }, 509 + "root_post_id": { 510 + "name": "root_post_id", 511 + "type": "bigint", 512 + "primaryKey": false, 513 + "notNull": false 514 + }, 515 + "parent_post_id": { 516 + "name": "parent_post_id", 517 + "type": "bigint", 518 + "primaryKey": false, 519 + "notNull": false 520 + }, 521 + "root_uri": { 522 + "name": "root_uri", 523 + "type": "text", 524 + "primaryKey": false, 525 + "notNull": false 526 + }, 527 + "parent_uri": { 528 + "name": "parent_uri", 529 + "type": "text", 530 + "primaryKey": false, 531 + "notNull": false 532 + }, 533 + "created_at": { 534 + "name": "created_at", 535 + "type": "timestamp with time zone", 536 + "primaryKey": false, 537 + "notNull": true 538 + }, 539 + "indexed_at": { 540 + "name": "indexed_at", 541 + "type": "timestamp with time zone", 542 + "primaryKey": false, 543 + "notNull": true 544 + }, 545 + "deleted": { 546 + "name": "deleted", 547 + "type": "boolean", 548 + "primaryKey": false, 549 + "notNull": true, 550 + "default": false 551 + } 552 + }, 553 + "indexes": { 554 + "posts_did_rkey_idx": { 555 + "name": "posts_did_rkey_idx", 556 + "columns": [ 557 + { 558 + "expression": "did", 559 + "isExpression": false, 560 + "asc": true, 561 + "nulls": "last" 562 + }, 563 + { 564 + "expression": "rkey", 565 + "isExpression": false, 566 + "asc": true, 567 + "nulls": "last" 568 + } 569 + ], 570 + "isUnique": true, 571 + "concurrently": false, 572 + "method": "btree", 573 + "with": {} 574 + }, 575 + "posts_forum_uri_idx": { 576 + "name": "posts_forum_uri_idx", 577 + "columns": [ 578 + { 579 + "expression": "forum_uri", 580 + "isExpression": false, 581 + "asc": true, 582 + "nulls": "last" 583 + } 584 + ], 585 + "isUnique": false, 586 + "concurrently": false, 587 + "method": "btree", 588 + "with": {} 589 + }, 590 + "posts_root_post_id_idx": { 591 + "name": "posts_root_post_id_idx", 592 + "columns": [ 593 + { 594 + "expression": "root_post_id", 595 + "isExpression": false, 596 + "asc": true, 597 + "nulls": "last" 598 + } 599 + ], 600 + "isUnique": false, 601 + "concurrently": false, 602 + "method": "btree", 603 + "with": {} 604 + } 605 + }, 606 + "foreignKeys": { 607 + "posts_did_users_did_fk": { 608 + "name": "posts_did_users_did_fk", 609 + "tableFrom": "posts", 610 + "tableTo": "users", 611 + "columnsFrom": [ 612 + "did" 613 + ], 614 + "columnsTo": [ 615 + "did" 616 + ], 617 + "onDelete": "no action", 618 + "onUpdate": "no action" 619 + }, 620 + "posts_root_post_id_posts_id_fk": { 621 + "name": "posts_root_post_id_posts_id_fk", 622 + "tableFrom": "posts", 623 + "tableTo": "posts", 624 + "columnsFrom": [ 625 + "root_post_id" 626 + ], 627 + "columnsTo": [ 628 + "id" 629 + ], 630 + "onDelete": "no action", 631 + "onUpdate": "no action" 632 + }, 633 + "posts_parent_post_id_posts_id_fk": { 634 + "name": "posts_parent_post_id_posts_id_fk", 635 + "tableFrom": "posts", 636 + "tableTo": "posts", 637 + "columnsFrom": [ 638 + "parent_post_id" 639 + ], 640 + "columnsTo": [ 641 + "id" 642 + ], 643 + "onDelete": "no action", 644 + "onUpdate": "no action" 645 + } 646 + }, 647 + "compositePrimaryKeys": {}, 648 + "uniqueConstraints": {}, 649 + "policies": {}, 650 + "checkConstraints": {}, 651 + "isRLSEnabled": false 652 + }, 653 + "public.users": { 654 + "name": "users", 655 + "schema": "", 656 + "columns": { 657 + "did": { 658 + "name": "did", 659 + "type": "text", 660 + "primaryKey": true, 661 + "notNull": true 662 + }, 663 + "handle": { 664 + "name": "handle", 665 + "type": "text", 666 + "primaryKey": false, 667 + "notNull": false 668 + }, 669 + "indexed_at": { 670 + "name": "indexed_at", 671 + "type": "timestamp with time zone", 672 + "primaryKey": false, 673 + "notNull": true 674 + } 675 + }, 676 + "indexes": {}, 677 + "foreignKeys": {}, 678 + "compositePrimaryKeys": {}, 679 + "uniqueConstraints": {}, 680 + "policies": {}, 681 + "checkConstraints": {}, 682 + "isRLSEnabled": false 683 + } 684 + }, 685 + "enums": {}, 686 + "schemas": {}, 687 + "sequences": {}, 688 + "roles": {}, 689 + "policies": {}, 690 + "views": {}, 691 + "_meta": { 692 + "columns": {}, 693 + "schemas": {}, 694 + "tables": {} 695 + } 696 + }
+13
packages/appview/drizzle/meta/_journal.json
··· 1 + { 2 + "version": "7", 3 + "dialect": "postgresql", 4 + "entries": [ 5 + { 6 + "idx": 0, 7 + "version": "7", 8 + "when": 1770434840203, 9 + "tag": "0000_lovely_roland_deschain", 10 + "breakpoints": true 11 + } 12 + ] 13 + }
+3 -1
packages/appview/package.json
··· 8 8 "dev": "tsx watch --env-file=../../.env src/index.ts", 9 9 "start": "node dist/index.js", 10 10 "lint": "tsc --noEmit", 11 - "clean": "rm -rf dist" 11 + "clean": "rm -rf dist", 12 + "db:generate": "drizzle-kit generate", 13 + "db:migrate": "drizzle-kit migrate" 12 14 }, 13 15 "dependencies": { 14 16 "@atbb/lexicon": "workspace:*",