Prisma Schema to SQL DDL Migration Generator
Convert Prisma schema definitions into clean, production-ready SQL DDL migration scripts for PostgreSQL, MySQL, and 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");
Instant Schema Compilation
Parses Prisma models, relations, composite keys, and native database types directly in browser memory without server latency.
100% Client-Side Privacy
Your database schemas, proprietary table designs, and business models never leave your browser. Zero cloud transmission.
Multi-Dialect SQL Target
Tailored DDL generation for PostgreSQL, MySQL, SQLite, and Microsoft SQL Server with dialect-specific types and constraints.