97e24d0d41
* Add record migration * Add database functions for inserting history No real tests yet :( I would like to avoid running postgres lol * Add index handler, use UUIDs not strings * Fix a bunch of tests, remove Option<Uuid> * Add tests, all passing * Working upload sync * Record downloading works * Sync download works * Don't waste requests * Use a page size for uploads, make it variable later * Aaaaaand they're encrypted now too * Add cek * Allow reading tail across hosts * Revert "Allow reading tail across hosts" Not like that This reverts commit 7b0c72e7e050c358172f9b53cbd21b9e44cf4931. * Handle multiple shards properly * format * Format and make clippy happy * use some fancy types (#1098) * use some fancy types * fmt * Goodbye horrible tuple * Update atuin-server-postgres/migrations/20230623070418_records.sql Co-authored-by: Conrad Ludgate <conradludgate@gmail.com> * fmt * Sort tests too because time sucks * fix features --------- Co-authored-by: Conrad Ludgate <conradludgate@gmail.com>
15 lines
902 B
SQL
15 lines
902 B
SQL
-- Add migration script here
|
|
create table records (
|
|
id uuid primary key, -- remember to use uuidv7 for happy indices <3
|
|
client_id uuid not null, -- I am too uncomfortable with the idea of a client-generated primary key
|
|
host uuid not null, -- a unique identifier for the host
|
|
parent uuid default null, -- the ID of the parent record, bearing in mind this is a linked list
|
|
timestamp bigint not null, -- not a timestamp type, as those do not have nanosecond precision
|
|
version text not null,
|
|
tag text not null, -- what is this? history, kv, whatever. Remember clients get a log per tag per host
|
|
data text not null, -- store the actual history data, encrypted. I don't wanna know!
|
|
cek text not null,
|
|
|
|
user_id bigint not null, -- allow multiple users
|
|
created_at timestamp not null default current_timestamp
|
|
);
|