132 lines
5.9 KiB
SQL
132 lines
5.9 KiB
SQL
-- Rollback: Delete default configuration items
|
|
-- Delete all inserted configuration items
|
|
DELETE FROM settings WHERE key IN (
|
|
-- Site configuration
|
|
'site.name',
|
|
'site.description',
|
|
'site.keywords',
|
|
'site.url',
|
|
'site.logo',
|
|
'site.copyright',
|
|
'site.icp',
|
|
'site.icp_url',
|
|
'site.color_style',
|
|
|
|
-- User configuration
|
|
'user.default_avatar',
|
|
'user.default_role',
|
|
'user.register_invite_code',
|
|
'user.register_email_verification',
|
|
'user.open_login',
|
|
'user.open_reset_password',
|
|
|
|
-- Email configuration
|
|
'email.smtp_host',
|
|
'email.smtp_port',
|
|
'email.smtp_user',
|
|
'email.smtp_password',
|
|
'email.smtp_from',
|
|
'email.smtp_from_name',
|
|
'email.smtp_from_email',
|
|
'email.system_template',
|
|
|
|
-- Blog configuration
|
|
'blog.default_author',
|
|
'blog.default_category',
|
|
'blog.default_tag',
|
|
'blog.open_comment',
|
|
|
|
-- Logging configuration
|
|
'logging.level',
|
|
'logging.max_files',
|
|
'logging.max_file_size',
|
|
|
|
-- Cache configuration
|
|
'cache.ttl',
|
|
'cache.max_size',
|
|
|
|
-- Feature switches configuration
|
|
'switch.open_register',
|
|
'switch.open_login',
|
|
'switch.open_reset_password',
|
|
'switch.open_comment',
|
|
'switch.open_like',
|
|
'switch.open_share',
|
|
'switch.open_view'
|
|
);
|
|
|
|
-- Drop unique index (if exists)
|
|
DROP INDEX IF EXISTS idx_settings_key_unique;
|
|
|
|
-- Insert default configuration items
|
|
-- Site configuration
|
|
INSERT INTO settings (key, value, value_type, description, category, is_system, is_editable) VALUES
|
|
('site.name', 'Mapp', 'string', 'Site name', 'site', true, true),
|
|
('site.description', 'A modern application platform', 'string', 'Site description', 'site', true, true),
|
|
('site.keywords', 'mapp,application,platform', 'string', 'Site keywords', 'site', true, true),
|
|
('site.url', 'http://localhost:3000', 'string', 'Site URL', 'site', true, true),
|
|
('site.logo', '/static/logo.png', 'string', 'Site logo path', 'site', true, true),
|
|
('site.copyright', '© 2024 Mapp. All rights reserved.', 'string', 'Copyright information', 'site', true, true),
|
|
('site.icp', '', 'string', 'ICP registration number', 'site', true, true),
|
|
('site.icp_url', '', 'string', 'ICP registration URL', 'site', true, true),
|
|
('site.color_style', 'default', 'string', 'Site color scheme', 'site', true, true);
|
|
|
|
-- User configuration
|
|
INSERT INTO settings (key, value, value_type, description, category, is_system, is_editable) VALUES
|
|
('user.default_avatar', '/static/default-avatar.png', 'string', 'Default user avatar', 'user', true, true),
|
|
('user.default_role', 'User', 'string', 'Default user role', 'user', true, true),
|
|
('user.register_invite_code', 'true', 'boolean', 'Require invite code for registration', 'user', true, true),
|
|
('user.register_email_verification', 'false', 'boolean', 'Require email verification for registration', 'user', true, true),
|
|
('user.open_login', 'true', 'boolean', 'Enable login', 'user', true, true),
|
|
('user.open_reset_password', 'true', 'boolean', 'Enable password reset', 'user', true, true);
|
|
|
|
-- Email configuration
|
|
INSERT INTO settings (key, value, value_type, description, category, is_system, is_editable) VALUES
|
|
('email.smtp_host', '', 'string', 'SMTP server address', 'email', true, true),
|
|
('email.smtp_port', '587', 'number', 'SMTP server port', 'email', true, true),
|
|
('email.smtp_user', '', 'string', 'SMTP username', 'email', true, true),
|
|
('email.smtp_password', '', 'string', 'SMTP password', 'email', true, true),
|
|
('email.smtp_from', '', 'string', 'Sender email', 'email', true, true),
|
|
('email.smtp_from_name', 'Mapp System', 'string', 'Sender name', 'email', true, true),
|
|
('email.smtp_from_email', '', 'string', 'Sender email address', 'email', true, true),
|
|
('email.system_template', 'default', 'string', 'System email template', 'email', true, true);
|
|
|
|
-- Blog configuration
|
|
INSERT INTO settings (key, value, value_type, description, category, is_system, is_editable) VALUES
|
|
('blog.default_author', 'System', 'string', 'Default blog author', 'blog', true, true),
|
|
('blog.default_category', 'Uncategorized', 'string', 'Default blog category', 'blog', true, true),
|
|
('blog.default_tag', 'Default', 'string', 'Default blog tag', 'blog', true, true),
|
|
('blog.open_comment', 'true', 'boolean', 'Enable comments', 'blog', true, true);
|
|
|
|
-- Logging configuration
|
|
INSERT INTO settings (key, value, value_type, description, category, is_system, is_editable) VALUES
|
|
('logging.level', 'info', 'string', 'Log level', 'logging', true, true),
|
|
('logging.max_files', '10', 'number', 'Maximum log files', 'logging', true, true),
|
|
('logging.max_file_size', '10485760', 'number', 'Maximum log file size (bytes)', 'logging', true, true);
|
|
|
|
-- Cache configuration
|
|
INSERT INTO settings (key, value, value_type, description, category, is_system, is_editable) VALUES
|
|
('cache.ttl', '3600', 'number', 'Cache time to live (seconds)', 'cache', true, true),
|
|
('cache.max_size', '1000', 'number', 'Maximum cache entries', 'cache', true, true);
|
|
|
|
-- Feature switches configuration
|
|
INSERT INTO settings (key, value, value_type, description, category, is_system, is_editable) VALUES
|
|
('switch.open_register', 'true', 'boolean', 'Enable registration', 'switch', true, true),
|
|
('switch.open_login', 'true', 'boolean', 'Enable login', 'switch', true, true),
|
|
('switch.open_reset_password', 'true', 'boolean', 'Enable password reset', 'switch', true, true),
|
|
('switch.open_comment', 'true', 'boolean', 'Enable comments', 'switch', true, true),
|
|
('switch.open_like', 'true', 'boolean', 'Enable likes', 'switch', true, true),
|
|
('switch.open_share', 'true', 'boolean', 'Enable sharing', 'switch', true, true),
|
|
('switch.open_view', 'true', 'boolean', 'Enable view statistics', 'switch', true, true);
|
|
|
|
-- 创建唯一索引约束(如果不存在)
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM pg_indexes
|
|
WHERE indexname = 'idx_settings_key_unique'
|
|
AND tablename = 'settings'
|
|
) THEN
|
|
CREATE UNIQUE INDEX idx_settings_key_unique ON settings(key);
|
|
END IF;
|
|
END $$; |