Files
TripLog/sql/migrations/2026-09-22-storage.sql
T

25 lines
1.5 KiB
SQL
Raw Normal View History

-- TripLog 迁移:存储抽象(本地 / 阿里云 OSS)
--
-- 本文件是「记录 + 可手工执行」的版本;实际由 tools/migrate.php 幂等地跑,
-- 它同样支持 MySQL 8(注意:MySQL 8 不支持 ADD COLUMN IF NOT EXISTS,
-- 所以列的存在性由 PHP 侧查 information_schema 判断)。
CREATE TABLE IF NOT EXISTS `app_settings` (
`setting_key` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
`setting_value` text COLLATE utf8mb4_unicode_ci,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`setting_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='站点级键值设置';
-- attachments 增加存储后端相关列(历史行 storage 默认 local,与旧行为一致)
ALTER TABLE `attachments`
ADD COLUMN `storage` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'local' COMMENT 'local|oss',
ADD COLUMN `object_key` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'OSS 对象键;本地存储为 /uploads/... 的相对路径',
ADD COLUMN `mime_type` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
ADD COLUMN `size_bytes` bigint DEFAULT NULL,
ADD COLUMN `width` int DEFAULT NULL COMMENT '图片宽(非图片为空)',
ADD COLUMN `height` int DEFAULT NULL COMMENT '图片高(非图片为空)',
ADD COLUMN `is_image` tinyint(1) NOT NULL DEFAULT '0';
ALTER TABLE `attachments` ADD KEY `idx_storage` (`storage`);