Skip to content

Commit

Permalink
add migrations
Browse files Browse the repository at this point in the history
Signed-off-by: simonsan <[email protected]>
  • Loading branch information
simonsan committed Mar 26, 2024
1 parent e3efc9a commit ded024f
Show file tree
Hide file tree
Showing 10 changed files with 102 additions and 7 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ logs/*
.cargo/config.toml

# Database
data/pace.sqlite3
db/activities.pace.sqlite3
5 changes: 3 additions & 2 deletions db/migrations/20240325143710_create_activities.sql
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@ CREATE TABLE activities (
duration INTEGER NULL,
kind TEXT NOT NULL,
status TEXT NOT NULL,
tags TEXT NULL,
parent_guid TEXT NULL,
FOREIGN KEY (parent_id) REFERENCES activities(guid)
FOREIGN KEY (kind) REFERENCES activity_kinds(guid),
FOREIGN KEY (status) REFERENCES activity_status(guid),
FOREIGN KEY (parent_guid) REFERENCES activities(guid)
);

-- migrate:down
Expand Down
8 changes: 8 additions & 0 deletions db/migrations/20240326124253_create_activity_kinds.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
-- migrate:up
CREATE TABLE activity_kinds (
guid TEXT PRIMARY KEY,
kind TEXT NOT NULL
);

-- migrate:down
DROP TABLE activity_kinds;
8 changes: 8 additions & 0 deletions db/migrations/20240326125555_create_tags.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
-- migrate:up
CREATE TABLE tags (
guid TEXT PRIMARY KEY,
tag TEXT NOT NULL
);

-- migrate:down
DROP TABLE tags;
11 changes: 11 additions & 0 deletions db/migrations/20240326125630_create_activities_tags.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
-- migrate:up
CREATE TABLE activities_tags (
guid TEXT PRIMARY KEY,
tag_guid TEXT NOT NULL,
activity_guid TEXT NOT NULL,
FOREIGN KEY (tag_guid) REFERENCES tags(guid),
FOREIGN KEY (activity_guid) REFERENCES activities(guid)
);

-- migrate:down
DROP TABLE activities_tags;
8 changes: 8 additions & 0 deletions db/migrations/20240326125819_create_activity_status.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
-- migrate:up
CREATE TABLE activity_status (
guid TEXT PRIMARY KEY,
status TEXT NOT NULL
);

-- migrate:down
DROP TABLE activity_status;
9 changes: 9 additions & 0 deletions db/migrations/20240326125937_create_categories.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
-- migrate:up
CREATE TABLE categories (
guid TEXT PRIMARY KEY,
category TEXT NOT NULL,
description TEXT NULL
);

-- migrate:down
DROP TABLE categories;
11 changes: 11 additions & 0 deletions db/migrations/20240326130013_create_activities_categories.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
-- migrate:up
CREATE TABLE activities_categories (
guid TEXT PRIMARY KEY,
category_guid TEXT NOT NULL,
activity_guid TEXT NOT NULL,
FOREIGN KEY (category_guid) REFERENCES categories(guid),
FOREIGN KEY (activity_guid) REFERENCES activities(guid)
);

-- migrate:down
DROP TABLE activities_categories;
Binary file removed db/pace.sqlite3
Binary file not shown.
47 changes: 43 additions & 4 deletions db/schema.sql
Original file line number Diff line number Diff line change
@@ -1,16 +1,55 @@
CREATE TABLE IF NOT EXISTS "schema_migrations" (version varchar(128) primary key);
CREATE TABLE activities (
id TEXT PRIMARY KEY,
guid TEXT PRIMARY KEY,
category TEXT NOT NULL,
description TEXT NOT NULL,
begin TEXT NOT NULL,
end TEXT NULL,
duration INTEGER NULL,
kind TEXT NOT NULL,
status TEXT NOT NULL,
parent_id TEXT NULL,
FOREIGN KEY (parent_id) REFERENCES activities(id)
parent_guid TEXT NULL,
FOREIGN KEY (kind) REFERENCES activity_kinds(guid),
FOREIGN KEY (status) REFERENCES activity_status(guid),
FOREIGN KEY (parent_guid) REFERENCES activities(guid)
);
CREATE TABLE activity_kinds (
guid TEXT PRIMARY KEY,
kind TEXT NOT NULL
);
CREATE TABLE tags (
guid TEXT PRIMARY KEY,
tag TEXT NOT NULL
);
CREATE TABLE activities_tags (
guid TEXT PRIMARY KEY,
tag_guid TEXT NOT NULL,
activity_guid TEXT NOT NULL,
FOREIGN KEY (tag_guid) REFERENCES tags(guid),
FOREIGN KEY (activity_guid) REFERENCES activities(guid)
);
CREATE TABLE activity_status (
guid TEXT PRIMARY KEY,
status TEXT NOT NULL
);
CREATE TABLE categories (
guid TEXT PRIMARY KEY,
category TEXT NOT NULL,
description TEXT NULL
);
CREATE TABLE activities_categories (
guid TEXT PRIMARY KEY,
category_guid TEXT NOT NULL,
activity_guid TEXT NOT NULL,
FOREIGN KEY (category_guid) REFERENCES categories(guid),
FOREIGN KEY (activity_guid) REFERENCES activities(guid)
);
-- Dbmate schema migrations
INSERT INTO "schema_migrations" (version) VALUES
('20240325143710');
('20240325143710'),
('20240326124253'),
('20240326125555'),
('20240326125630'),
('20240326125819'),
('20240326125937'),
('20240326130013');

0 comments on commit ded024f

Please sign in to comment.