Prisma Schema zu SQL DDL Migrationsgenerator
Konvertieren Sie Prisma-Schemadefinitionen in produktionsbereite SQL-DDL-Migrationsskripte für PostgreSQL, MySQL und SQLite.
-- ============================================================================
-- ToolsAA Prisma to SQL DDL Generator
-- Target Dialect: POSTGRESQL
-- Generated via ToolsAA Prisma-to-SQL Engine
-- 100% Pure Client-Side Browser Compilation
-- ============================================================================
-- ----------------------------------------------------------------------------
-- Drop Existing Tables
-- ----------------------------------------------------------------------------
DROP TABLE IF EXISTS "user_sessions" CASCADE;
DROP TABLE IF EXISTS "memberships" CASCADE;
DROP TABLE IF EXISTS "users" CASCADE;
DROP TABLE IF EXISTS "organizations" CASCADE;
-- ----------------------------------------------------------------------------
-- Custom Enum Types
-- ----------------------------------------------------------------------------
DROP TYPE IF EXISTS "Role";
CREATE TYPE "Role" AS ENUM ('SUPERADMIN', 'ADMIN', 'MEMBER', 'VIEWER');
DROP TYPE IF EXISTS "MemberStatus";
CREATE TYPE "MemberStatus" AS ENUM ('INVITED', 'ACTIVE', 'SUSPENDED');
-- ----------------------------------------------------------------------------
-- Table Definitions
-- ----------------------------------------------------------------------------
CREATE TABLE "organizations" (
"id" UUID NOT NULL DEFAULT 'uuid(',
"name" VARCHAR(128) NOT NULL,
"slug" VARCHAR(64) NOT NULL UNIQUE,
"domain" VARCHAR(128),
"createdAt" TIMESTAMPTZ NOT NULL DEFAULT 'now(',
"updatedAt" TIMESTAMPTZ NOT NULL,
PRIMARY KEY ("id")
);
CREATE TABLE "users" (
"id" UUID NOT NULL DEFAULT 'uuid(',
"email" VARCHAR(255) NOT NULL UNIQUE,
"fullName" VARCHAR(128) NOT NULL,
"avatarUrl" VARCHAR(512),
"emailVerified" TIMESTAMPTZ,
"isActive" BOOLEAN NOT NULL DEFAULT true,
"createdAt" TIMESTAMPTZ NOT NULL DEFAULT 'now(',
"updatedAt" TIMESTAMPTZ NOT NULL,
PRIMARY KEY ("id")
);
CREATE TABLE "memberships" (
"id" UUID NOT NULL DEFAULT 'uuid(',
"organizationId" UUID NOT NULL,
"userId" UUID NOT NULL,
"role" "Role" NOT NULL DEFAULT 'MEMBER',
"status" "MemberStatus" NOT NULL DEFAULT 'ACTIVE',
"joinedAt" TIMESTAMPTZ NOT NULL DEFAULT 'now(',
PRIMARY KEY ("id"),
UNIQUE ("organizationId", "userId")
);
CREATE TABLE "user_sessions" (
"id" UUID NOT NULL DEFAULT 'uuid(',
"sessionToken" VARCHAR(255) NOT NULL UNIQUE,
"userId" UUID NOT NULL,
"ipAddress" VARCHAR(45),
"userAgent" VARCHAR(512),
"expiresAt" TIMESTAMPTZ NOT NULL,
"createdAt" TIMESTAMPTZ NOT NULL DEFAULT 'now(',
PRIMARY KEY ("id")
);
-- ----------------------------------------------------------------------------
-- Foreign Key Constraints
-- ----------------------------------------------------------------------------
ALTER TABLE "memberships" ADD CONSTRAINT fk_memberships_organizationId FOREIGN KEY ("organizationId") REFERENCES "organizations"("id") ON DELETE CASCADE;
ALTER TABLE "memberships" ADD CONSTRAINT fk_memberships_userId FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE CASCADE;
ALTER TABLE "user_sessions" ADD CONSTRAINT fk_user_sessions_userId FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE CASCADE;
-- ----------------------------------------------------------------------------
-- Secondary Indexes
-- ----------------------------------------------------------------------------
CREATE INDEX "idx_memberships_userId" ON "memberships" ("userId");
CREATE INDEX "idx_user_sessions_userId_expiresAt" ON "user_sessions" ("userId", "expiresAt");
Blitzschnelle Schema-Kompilierung
Parst Prisma-Modelle, Relationen, zusammengesetzte Primärschlüssel und native Typen direkt im Browser.
100% Privatsphäre & Datensicherheit
Ihre Datenbankschemata und Geschäftsdaten verlassen niemals Ihren Browser. Keine Cloud-Übertragung.
Multi-Dialekt SQL-Unterstützung
Optimierte DDL-Generierung für PostgreSQL, MySQL, SQLite und SQL Server mit dialektspezifischen Typen.