atelier/shelves/backend/migrations/001_init.sql
2025-02-02 12:24:00 -05:00

65 lines
1.3 KiB
SQL

create table blob (
blob_id integer primary key autoincrement,
data blob not null,
content_type text not null,
created_timestamp text not null
) strict;
create table shelf (
shelf_id integer primary key autoincrement,
shelf_xid text not null unique,
name text not null,
created_timestamp text not null
) strict;
create table item (
item_id integer primary key autoincrement,
item_xid text not null unique,
item_type text not null,
name text not null,
image_blob_id integer,
started_timestamp text,
finished_timestamp text,
rating real,
review text not null,
other_metadata_json text,
foreign key (image_blob_id) references blob(blob_id)
) strict;
create table shelf_item (
shelf_item_id integer primary key,
item_id integer not null,
collection_id integer not null,
foreign key (item_id) references item(item_id),
foreign key (collection_id) references collection(collection_id),
unique (item_id, collection_id)
) strict;
create table shelf_arrangement (
shelf_arrangement_id integer primary key,
shelf_arrangement_xid text not null unique,
name text not null,
collection_id integer not null,
shelf_arrangement_json_blob text not null,
foreign key (collection_id) references collection(collection_id)
) strict;
create table activity (
activity_id integer primary key,
activity_json_blob text not null
) strict;