File
Blob: drizzle/card-dav-do/0001_cheerful_madripoor.sql
| 1 | CREATE TABLE `address_changes` ( |
| 2 | `seq` integer PRIMARY KEY AUTOINCREMENT NOT NULL, |
| 3 | `addressbook_id` text, |
| 4 | `href` text NOT NULL, |
| 5 | `change_type` text NOT NULL, |
| 6 | `changed_at_ms` integer NOT NULL, |
| 7 | FOREIGN KEY (`addressbook_id`) REFERENCES `addressbooks`(`id`) ON UPDATE no action ON DELETE cascade, |
| 8 | CONSTRAINT "address_changes_type_check" CHECK("address_changes"."change_type" in ('created', 'updated', 'deleted')) |
| 9 | ); |
| 10 | --> statement-breakpoint |
| 11 | CREATE INDEX `address_changes_book_seq_idx` ON `address_changes` (`addressbook_id`,`seq`);--> statement-breakpoint |
| 12 | CREATE INDEX `address_changes_changed_idx` ON `address_changes` (`changed_at_ms`);--> statement-breakpoint |
| 13 | CREATE INDEX `address_changes_href_idx` ON `address_changes` (`href`);--> statement-breakpoint |
| 14 | CREATE TABLE `address_dead_props` ( |
| 15 | `resource_kind` text NOT NULL, |
| 16 | `resource_id` text NOT NULL, |
| 17 | `ns_uri` text NOT NULL, |
| 18 | `local_name` text NOT NULL, |
| 19 | `xml_value` text NOT NULL, |
| 20 | PRIMARY KEY(`resource_kind`, `resource_id`, `ns_uri`, `local_name`), |
| 21 | CONSTRAINT "address_dead_props_kind_check" CHECK("address_dead_props"."resource_kind" in ('home', 'addressbook', 'object')) |
| 22 | ); |
| 23 | --> statement-breakpoint |
| 24 | CREATE TABLE `address_index` ( |
| 25 | `object_id` text PRIMARY KEY NOT NULL, |
| 26 | `addressbook_id` text NOT NULL, |
| 27 | `uid` text NOT NULL, |
| 28 | `fn` text, |
| 29 | `n_family` text, |
| 30 | `n_given` text, |
| 31 | `org` text, |
| 32 | `emails_json` text NOT NULL, |
| 33 | `tels_json` text NOT NULL, |
| 34 | FOREIGN KEY (`object_id`) REFERENCES `address_objects`(`id`) ON UPDATE no action ON DELETE cascade, |
| 35 | FOREIGN KEY (`addressbook_id`) REFERENCES `addressbooks`(`id`) ON UPDATE no action ON DELETE cascade |
| 36 | ); |
| 37 | --> statement-breakpoint |
| 38 | CREATE INDEX `address_index_uid_idx` ON `address_index` (`addressbook_id`,`uid`);--> statement-breakpoint |
| 39 | CREATE INDEX `address_index_fn_idx` ON `address_index` (`addressbook_id`,`fn`);--> statement-breakpoint |
| 40 | CREATE INDEX `address_index_family_idx` ON `address_index` (`addressbook_id`,`n_family`);--> statement-breakpoint |
| 41 | CREATE INDEX `address_index_given_idx` ON `address_index` (`addressbook_id`,`n_given`);--> statement-breakpoint |
| 42 | CREATE INDEX `address_index_org_idx` ON `address_index` (`addressbook_id`,`org`);--> statement-breakpoint |
| 43 | CREATE TABLE `address_objects` ( |
| 44 | `id` text PRIMARY KEY NOT NULL, |
| 45 | `addressbook_id` text NOT NULL, |
| 46 | `name` text NOT NULL, |
| 47 | `uid` text NOT NULL, |
| 48 | `body` text NOT NULL, |
| 49 | `etag` text NOT NULL, |
| 50 | `size` integer NOT NULL, |
| 51 | `created_at_ms` integer NOT NULL, |
| 52 | `modified_at_ms` integer NOT NULL, |
| 53 | `version` integer DEFAULT 1 NOT NULL, |
| 54 | FOREIGN KEY (`addressbook_id`) REFERENCES `addressbooks`(`id`) ON UPDATE no action ON DELETE cascade |
| 55 | ); |
| 56 | --> statement-breakpoint |
| 57 | CREATE UNIQUE INDEX `address_objects_book_name_unique` ON `address_objects` (`addressbook_id`,`name`);--> statement-breakpoint |
| 58 | CREATE UNIQUE INDEX `address_objects_book_uid_unique` ON `address_objects` (`addressbook_id`,`uid`);--> statement-breakpoint |
| 59 | CREATE INDEX `address_objects_book_modified_idx` ON `address_objects` (`addressbook_id`,`modified_at_ms`);--> statement-breakpoint |
| 60 | CREATE TABLE `addressbooks` ( |
| 61 | `id` text PRIMARY KEY NOT NULL, |
| 62 | `name` text NOT NULL, |
| 63 | `display_name` text NOT NULL, |
| 64 | `description` text, |
| 65 | `created_at_ms` integer NOT NULL, |
| 66 | `modified_at_ms` integer NOT NULL, |
| 67 | `sync_seq` integer DEFAULT 0 NOT NULL |
| 68 | ); |
| 69 | --> statement-breakpoint |
| 70 | CREATE UNIQUE INDEX `addressbooks_name_unique` ON `addressbooks` (`name`);--> statement-breakpoint |
| 71 | CREATE INDEX `addressbooks_modified_idx` ON `addressbooks` (`modified_at_ms`); |