| Server IP : 10.200.247.200 / Your IP : 216.73.217.19 Web Server : Apache System : Linux synergy-usa-sites 6.8.0-138-generic #138-Ubuntu SMP PREEMPT_DYNAMIC Fri Jul 31 22:41:49 UTC 2026 x86_64 User : jeremy ( 1001) PHP Version : 8.4.25 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/development/callings.lvsaints.com/ |
Upload File : |
-- Village Ward Calling Board — database schema (MariaDB)
-- Fresh install: mysql -u <user> -p <dbname> < schema.sql
-- (Already ran the earlier single-ward schema? Use migration_multiward.sql instead.)
CREATE TABLE IF NOT EXISTS wards (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(120) NOT NULL,
slug VARCHAR(80) NOT NULL UNIQUE, -- used in URLs later, e.g. /Village
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(255) NOT NULL UNIQUE,
password_hash VARCHAR(255) NOT NULL,
role ENUM('super_admin','admin','viewer') NOT NULL DEFAULT 'viewer',
ward_id INT DEFAULT NULL, -- NULL for super_admin (spans all wards)
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_user_ward FOREIGN KEY (ward_id)
REFERENCES wards(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Each save is a new row. The row with is_live = 1 (per ward) is what visitors see.
CREATE TABLE IF NOT EXISTS page_versions (
id INT AUTO_INCREMENT PRIMARY KEY,
ward_id INT NOT NULL,
html LONGTEXT NOT NULL,
note VARCHAR(255) DEFAULT NULL, -- optional "what changed" label
is_live TINYINT(1) NOT NULL DEFAULT 0,
created_by INT DEFAULT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_version_ward FOREIGN KEY (ward_id)
REFERENCES wards(id) ON DELETE CASCADE,
CONSTRAINT fk_version_user FOREIGN KEY (created_by)
REFERENCES users(id) ON DELETE SET NULL,
INDEX idx_live (ward_id, is_live)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;