mirror of
https://github.com/penpot/penpot.git
synced 2025-08-04 04:38:27 +02:00
🎉 Add media-object lifecycle handling.
This commit is contained in:
parent
93aaa52e73
commit
c0cd0d4a23
39 changed files with 975 additions and 323 deletions
|
@ -38,7 +38,6 @@ CREATE INDEX project_profile_rel__project_id__idx
|
|||
ON project_profile_rel(project_id);
|
||||
|
||||
|
||||
|
||||
CREATE TABLE file (
|
||||
id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
|
||||
project_id uuid NOT NULL REFERENCES project(id) ON DELETE CASCADE,
|
||||
|
@ -77,7 +76,6 @@ CREATE TRIGGER file_profile_rel__modified_at__tgr
|
|||
BEFORE UPDATE ON file_profile_rel
|
||||
FOR EACH ROW EXECUTE PROCEDURE update_modified_at();
|
||||
|
||||
|
||||
CREATE TABLE file_image (
|
||||
id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
|
||||
file_id uuid NOT NULL REFERENCES file(id) ON DELETE CASCADE,
|
||||
|
@ -168,7 +166,6 @@ BEFORE UPDATE ON page
|
|||
FOR EACH ROW EXECUTE PROCEDURE handle_page_update();
|
||||
|
||||
|
||||
|
||||
CREATE TABLE page_version (
|
||||
id uuid PRIMARY KEY DEFAULT uuid_generate_v4(),
|
||||
|
||||
|
@ -220,3 +217,4 @@ CREATE INDEX page_change__page_id__idx
|
|||
CREATE TRIGGER page_change__modified_at__tgr
|
||||
BEFORE UPDATE ON page_change
|
||||
FOR EACH ROW EXECUTE PROCEDURE update_modified_at();
|
||||
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
ALTER TABLE file
|
||||
ADD COLUMN has_media_trimmed boolean DEFAULT false;
|
||||
|
||||
CREATE INDEX file__modified_at__has_media_trimed__idx
|
||||
ON file(modified_at)
|
||||
WHERE has_media_trimmed IS false;
|
||||
|
||||
CREATE FUNCTION on_media_object_insert()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
UPDATE file
|
||||
SET has_media_trimmed = false,
|
||||
modified_at = now()
|
||||
WHERE id = NEW.file_id;
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
CREATE TRIGGER media_object__insert__tgr
|
||||
AFTER INSERT ON media_object
|
||||
FOR EACH ROW EXECUTE PROCEDURE on_media_object_insert();
|
||||
|
||||
CREATE TRIGGER media_thumbnail__on_delete__tgr
|
||||
AFTER DELETE ON media_thumbnail
|
||||
FOR EACH ROW EXECUTE PROCEDURE handle_delete();
|
|
@ -0,0 +1,24 @@
|
|||
DROP TABLE scheduled_task;
|
||||
|
||||
CREATE TABLE scheduled_task (
|
||||
id text PRIMARY KEY,
|
||||
|
||||
created_at timestamptz NOT NULL DEFAULT clock_timestamp(),
|
||||
modified_at timestamptz NOT NULL DEFAULT clock_timestamp(),
|
||||
|
||||
cron_expr text NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE scheduled_task_history (
|
||||
id uuid DEFAULT uuid_generate_v4(),
|
||||
task_id text NOT NULL REFERENCES scheduled_task(id),
|
||||
|
||||
created_at timestamptz NOT NULL DEFAULT clock_timestamp(),
|
||||
is_error boolean NOT NULL DEFAULT false,
|
||||
reason text NULL DEFAULT NULL,
|
||||
|
||||
PRIMARY KEY (id, created_at)
|
||||
);
|
||||
|
||||
CREATE INDEX scheduled_task_history__task_id__idx
|
||||
ON scheduled_task_history(task_id);
|
|
@ -0,0 +1,8 @@
|
|||
alter table media_object drop column modified_at;
|
||||
alter index image_pkey rename to media_object_pkey;
|
||||
alter index image__file_id__idx rename to media_bject__file_id__idx;
|
||||
alter table media_object rename constraint image_file_id_fkey to media_object_file_id_fkey;
|
||||
alter trigger image__on_delete__tgr on media_object rename to media_object__on_delete__tgr;
|
||||
drop trigger image__modified_at__tgr on media_object;
|
||||
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
alter table http_session drop constraint http_session_pkey;
|
||||
alter table http_session add primary key (id, profile_id);
|
||||
alter table http_session drop column modified_at;
|
||||
drop index http_session__profile_id__idx;
|
Loading…
Add table
Add a link
Reference in a new issue