Redmage/db/migrations/20240409222145_create_images_table.sql

49 lines
1.6 KiB
MySQL
Raw Normal View History

2024-04-09 21:49:23 +07:00
-- +goose Up
-- +goose StatementBegin
CREATE TABLE images(
id INTEGER PRIMARY KEY,
subreddit_id INTEGER NOT NULL,
2024-04-09 22:37:26 +07:00
device_id INTEGER NOT NULL,
2024-04-09 21:49:23 +07:00
title VARCHAR(255) NOT NULL,
post_id VARCHAR(50) NOT NULL,
post_url VARCHAR(255) NOT NULL,
2024-04-10 22:38:19 +07:00
post_created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
2024-04-25 12:31:20 +07:00
post_name VARCHAR(255) NOT NULL,
2024-04-09 21:49:23 +07:00
poster VARCHAR(50) NOT NULL,
poster_url VARCHAR(255) NOT NULL,
2024-04-09 21:49:23 +07:00
image_relative_path VARCHAR(255) NOT NULL,
thumbnail_relative_path VARCHAR(255) NOT NULL DEFAULT '',
image_original_url VARCHAR(255) NOT NULL,
thumbnail_original_url VARCHAR(255) NOT NULL DEFAULT '',
2024-04-09 22:37:26 +07:00
nsfw INTEGER NOT NULL DEFAULT 0,
2024-04-09 21:49:23 +07:00
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
CONSTRAINT fk_subreddit_id
FOREIGN KEY (subreddit_id)
REFERENCES subreddits(id)
2024-04-09 22:37:26 +07:00
ON DELETE CASCADE,
CONSTRAINT fk_devices_id
FOREIGN KEY (device_id)
REFERENCES devices(id)
2024-04-09 21:49:23 +07:00
ON DELETE CASCADE
);
CREATE TRIGGER update_images_timestamp AFTER UPDATE ON images FOR EACH ROW
BEGIN
UPDATE images SET updated_at = CURRENT_TIMESTAMP WHERE id = old.id;
END;
2024-04-26 22:13:04 +07:00
CREATE TRIGGER update_subreddits_timestamp_on_insert AFTER INSERT ON images FOR EACH ROW
BEGIN
UPDATE subreddits SET updated_at = CURRENT_TIMESTAMP WHERE id = new.subreddit_id;
END;
2024-04-09 21:49:23 +07:00
CREATE INDEX idx_subreddit_id ON images(subreddit_id);
2024-04-09 22:37:26 +07:00
CREATE INDEX idx_nsfw ON images(nsfw);
2024-04-09 21:49:23 +07:00
-- +goose StatementEnd
-- +goose Down
-- +goose StatementBegin
DROP TABLE IF EXISTS images;
-- +goose StatementEnd