CREATE TABLE `blobs` ( `blob_id` text PRIMARY KEY NOT NULL, `blob_key` text NOT NULL, `size` integer NOT NULL, `r2_etag` text, `sha256` text, `refcount` integer DEFAULT 0 NOT NULL, `created_at_ms` integer NOT NULL ); --> statement-breakpoint CREATE UNIQUE INDEX `blobs_key_unique` ON `blobs` (`blob_key`);--> statement-breakpoint CREATE INDEX `blobs_refcount_idx` ON `blobs` (`refcount`);--> statement-breakpoint CREATE INDEX `blobs_created_idx` ON `blobs` (`created_at_ms`);--> statement-breakpoint CREATE TABLE `changes` ( `seq` integer PRIMARY KEY AUTOINCREMENT NOT NULL, `node_id` text, `href` text NOT NULL, `change_type` text NOT NULL, `changed_at_ms` integer NOT NULL, FOREIGN KEY (`node_id`) REFERENCES `nodes`(`id`) ON UPDATE no action ON DELETE set null, CONSTRAINT "changes_type_check" CHECK("changes"."change_type" in ('created', 'updated', 'deleted', 'moved')) ); --> statement-breakpoint CREATE INDEX `changes_href_idx` ON `changes` (`href`);--> statement-breakpoint CREATE INDEX `changes_changed_idx` ON `changes` (`changed_at_ms`);--> statement-breakpoint CREATE TABLE `dead_props` ( `node_id` text NOT NULL, `ns_uri` text NOT NULL, `local_name` text NOT NULL, `xml_value` text NOT NULL, PRIMARY KEY(`node_id`, `ns_uri`, `local_name`), FOREIGN KEY (`node_id`) REFERENCES `nodes`(`id`) ON UPDATE no action ON DELETE cascade ); --> statement-breakpoint CREATE TABLE `locks` ( `token` text PRIMARY KEY NOT NULL, `root_node_id` text, `root_path` text NOT NULL, `owner_xml` text NOT NULL, `principal_subject_id` text NOT NULL, `scope` text NOT NULL, `depth` text NOT NULL, `created_at_ms` integer NOT NULL, `expires_at_ms` integer NOT NULL, FOREIGN KEY (`root_node_id`) REFERENCES `nodes`(`id`) ON UPDATE no action ON DELETE cascade, CONSTRAINT "locks_scope_check" CHECK("locks"."scope" in ('exclusive', 'shared')), CONSTRAINT "locks_depth_check" CHECK("locks"."depth" in ('0', 'infinity')) ); --> statement-breakpoint CREATE INDEX `locks_root_node_idx` ON `locks` (`root_node_id`);--> statement-breakpoint CREATE INDEX `locks_root_path_idx` ON `locks` (`root_path`);--> statement-breakpoint CREATE INDEX `locks_expires_idx` ON `locks` (`expires_at_ms`);--> statement-breakpoint CREATE INDEX `locks_principal_idx` ON `locks` (`principal_subject_id`);--> statement-breakpoint CREATE TABLE `nodes` ( `id` text PRIMARY KEY NOT NULL, `parent_id` text, `name` text NOT NULL, `kind` text NOT NULL, `blob_id` text, `size` integer DEFAULT 0 NOT NULL, `content_type` text, `content_language` text, `etag` text, `root_marker` text, `created_at_ms` integer NOT NULL, `modified_at_ms` integer NOT NULL, `version` integer DEFAULT 1 NOT NULL, FOREIGN KEY (`parent_id`) REFERENCES `nodes`(`id`) ON UPDATE no action ON DELETE cascade, FOREIGN KEY (`blob_id`) REFERENCES `blobs`(`blob_id`) ON UPDATE no action ON DELETE restrict, CONSTRAINT "nodes_kind_check" CHECK("nodes"."kind" in ('collection', 'file')), CONSTRAINT "nodes_root_marker_check" CHECK("nodes"."root_marker" is null or "nodes"."root_marker" = 'root'), CONSTRAINT "nodes_collection_blob_check" CHECK("nodes"."kind" != 'collection' or "nodes"."blob_id" is null) ); --> statement-breakpoint CREATE UNIQUE INDEX `nodes_parent_name_unique` ON `nodes` (`parent_id`,`name`);--> statement-breakpoint CREATE UNIQUE INDEX `nodes_root_marker_unique` ON `nodes` (`root_marker`);--> statement-breakpoint CREATE INDEX `nodes_parent_kind_idx` ON `nodes` (`parent_id`,`kind`);--> statement-breakpoint CREATE INDEX `nodes_blob_idx` ON `nodes` (`blob_id`);--> statement-breakpoint CREATE INDEX `nodes_modified_idx` ON `nodes` (`modified_at_ms`);--> statement-breakpoint CREATE TABLE `pending_uploads` ( `upload_id` text PRIMARY KEY NOT NULL, `node_id` text, `path` text NOT NULL, `blob_id` text NOT NULL, `blob_key` text NOT NULL, `created_at_ms` integer NOT NULL, `expires_at_ms` integer NOT NULL, `state` text NOT NULL, FOREIGN KEY (`node_id`) REFERENCES `nodes`(`id`) ON UPDATE no action ON DELETE set null, CONSTRAINT "pending_uploads_state_check" CHECK("pending_uploads"."state" in ('pending', 'committed', 'aborted')) ); --> statement-breakpoint CREATE INDEX `pending_uploads_state_expires_idx` ON `pending_uploads` (`state`,`expires_at_ms`);--> statement-breakpoint CREATE INDEX `pending_uploads_path_idx` ON `pending_uploads` (`path`);--> statement-breakpoint CREATE INDEX `pending_uploads_blob_idx` ON `pending_uploads` (`blob_id`);--> statement-breakpoint ALTER TABLE `meta` DROP COLUMN `updated_at_ms`;