Replace the superseded Drizzle monorepo scaffold with a single-app Prisma 7 data layer, mirroring the proven habbo-next approach to the shared Arcturus emulator DB (introspect/conform only, idempotent SQL migrations via a custom runner; never migrate-diff). - prisma/schema.prisma: User, UsersCurrency (composite PK), Ban, WebsiteSetting mapped to AtomCMS's default.sql columns; client generated to src/generated/prisma - src/lib/prisma.ts: PrismaMariaDb adapter singleton; src/env.ts zod env - src/lib/services: siteSettings (cached setting() equivalent) + CurrencyType enum - prisma/migrations + scripts/apply-migrations.ts: idempotent CMS-table runner Verified: prisma generate OK, tsc --noEmit exit 0, vitest 6/6 pass.
11 lines
452 B
SQL
11 lines
452 B
SQL
-- CMS-owned settings table. Idempotent: safe to re-run.
|
|
-- Mirrors AtomCMS's Laravel `website_settings` (key UNIQUE, value TEXT).
|
|
CREATE TABLE IF NOT EXISTS website_settings (
|
|
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
|
|
`key` VARCHAR(255) NOT NULL,
|
|
value TEXT NOT NULL,
|
|
comment VARCHAR(255) NULL,
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY website_settings_key_unique (`key`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|