fix
Some checks failed
部署后端服务 / 🧪 测试后端 (push) Failing after 5m8s
部署后端服务 / 🚀 构建并部署 (push) Has been skipped
部署后端服务 / 🔄 回滚部署 (push) Has been skipped

This commit is contained in:
xujiang
2025-07-10 18:09:11 +08:00
parent 35004f224e
commit 010fe2a8c7
96 changed files with 23709 additions and 19 deletions

View File

@ -0,0 +1,64 @@
-- +migrate Up
CREATE TABLE photos (
id SERIAL PRIMARY KEY,
title VARCHAR(200) NOT NULL,
description TEXT,
filename VARCHAR(255) NOT NULL,
original_url VARCHAR(500) NOT NULL,
thumbnail_url VARCHAR(500),
medium_url VARCHAR(500),
large_url VARCHAR(500),
file_size BIGINT,
mime_type VARCHAR(100),
width INTEGER,
height INTEGER,
camera_make VARCHAR(100),
camera_model VARCHAR(100),
lens_model VARCHAR(100),
focal_length DECIMAL(5,2),
aperture DECIMAL(3,1),
shutter_speed VARCHAR(20),
iso INTEGER,
taken_at TIMESTAMP,
location_name VARCHAR(200),
latitude DECIMAL(10,8),
longitude DECIMAL(11,8),
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
album_id INTEGER,
category_id INTEGER,
is_public BOOLEAN DEFAULT true,
is_featured BOOLEAN DEFAULT false,
view_count INTEGER DEFAULT 0,
like_count INTEGER DEFAULT 0,
download_count INTEGER DEFAULT 0,
sort_order INTEGER DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
deleted_at TIMESTAMP
);
-- 创建索引
CREATE INDEX idx_photos_user_id ON photos(user_id);
CREATE INDEX idx_photos_album_id ON photos(album_id);
CREATE INDEX idx_photos_category_id ON photos(category_id);
CREATE INDEX idx_photos_is_public ON photos(is_public);
CREATE INDEX idx_photos_is_featured ON photos(is_featured);
CREATE INDEX idx_photos_taken_at ON photos(taken_at);
CREATE INDEX idx_photos_created_at ON photos(created_at);
CREATE INDEX idx_photos_view_count ON photos(view_count);
CREATE INDEX idx_photos_like_count ON photos(like_count);
CREATE INDEX idx_photos_sort_order ON photos(sort_order);
CREATE INDEX idx_photos_deleted_at ON photos(deleted_at) WHERE deleted_at IS NOT NULL;
-- 地理位置索引
CREATE INDEX idx_photos_location ON photos(latitude, longitude) WHERE latitude IS NOT NULL AND longitude IS NOT NULL;
-- 添加更新时间触发器
CREATE TRIGGER update_photos_updated_at BEFORE UPDATE ON photos
FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
-- +migrate Down
DROP TRIGGER IF EXISTS update_photos_updated_at ON photos;
DROP TABLE IF EXISTS photos;