Files
SkyArtShop/backend/old-setup-scripts/admin-panel-schema.sql
Local Server 61929a5daf updateweb
2025-12-14 01:54:40 -06:00

66 lines
2.5 KiB
SQL

-- Add site_settings table for storing configuration
CREATE TABLE IF NOT EXISTS site_settings (
key VARCHAR(100) PRIMARY KEY,
settings JSONB NOT NULL DEFAULT '{}',
createdat TIMESTAMP DEFAULT NOW(),
updatedat TIMESTAMP DEFAULT NOW()
);
-- Add indexes for better performance
CREATE INDEX IF NOT EXISTS idx_site_settings_key ON site_settings(key);
-- Insert default settings if they don't exist
INSERT INTO site_settings (key, settings, createdat, updatedat)
VALUES
('general', '{}', NOW(), NOW()),
('homepage', '{}', NOW(), NOW()),
('menu', '{"items":[]}', NOW(), NOW())
ON CONFLICT (key) DO NOTHING;
-- Ensure products table has all necessary columns
ALTER TABLE products
ADD COLUMN IF NOT EXISTS isbestseller BOOLEAN DEFAULT FALSE,
ADD COLUMN IF NOT EXISTS category VARCHAR(255),
ADD COLUMN IF NOT EXISTS updatedat TIMESTAMP DEFAULT NOW();
-- Ensure portfolioprojects table has all necessary columns
ALTER TABLE portfolioprojects
ADD COLUMN IF NOT EXISTS category VARCHAR(255),
ADD COLUMN IF NOT EXISTS isactive BOOLEAN DEFAULT TRUE,
ADD COLUMN IF NOT EXISTS updatedat TIMESTAMP DEFAULT NOW();
-- Ensure blogposts table has all necessary columns
ALTER TABLE blogposts
ADD COLUMN IF NOT EXISTS metatitle VARCHAR(255),
ADD COLUMN IF NOT EXISTS metadescription TEXT,
ADD COLUMN IF NOT EXISTS updatedat TIMESTAMP DEFAULT NOW();
-- Ensure pages table has all necessary columns
ALTER TABLE pages
ADD COLUMN IF NOT EXISTS metatitle VARCHAR(255),
ADD COLUMN IF NOT EXISTS metadescription TEXT,
ADD COLUMN IF NOT EXISTS updatedat TIMESTAMP DEFAULT NOW();
-- Ensure adminusers table has all necessary columns
ALTER TABLE adminusers
ADD COLUMN IF NOT EXISTS name VARCHAR(255),
ADD COLUMN IF NOT EXISTS username VARCHAR(255) UNIQUE,
ADD COLUMN IF NOT EXISTS passwordneverexpires BOOLEAN DEFAULT FALSE,
ADD COLUMN IF NOT EXISTS updatedat TIMESTAMP DEFAULT NOW();
-- Add username for existing users if not exists
UPDATE adminusers
SET username = LOWER(REGEXP_REPLACE(email, '@.*$', ''))
WHERE username IS NULL;
-- Add name for existing users if not exists
UPDATE adminusers
SET name = INITCAP(REGEXP_REPLACE(email, '@.*$', ''))
WHERE name IS NULL;
COMMENT ON TABLE site_settings IS 'Stores site-wide configuration settings in JSON format';
COMMENT ON TABLE products IS 'Product catalog with variants and inventory';
COMMENT ON TABLE portfolioprojects IS 'Portfolio showcase projects';
COMMENT ON TABLE blogposts IS 'Blog posts with SEO metadata';
COMMENT ON TABLE pages IS 'Custom pages with SEO metadata';