Generador de Migración Prisma Schema a SQL DDL
Guía técnica para convertir esquemas de Prisma a sentencias SQL DDL compatibles con PostgreSQL, MySQL y 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");
Compilación Instantánea de Esquemas
Analiza modelos de Prisma, claves compuestas y tipos nativos en la memoria de su navegador sin latencia de red.
Privacidad 100% en el Cliente
Sus esquemas de bases de datos nunca salen de su navegador. Cero transmisiones a servidores externos.
Soporte Multi-Dialecto SQL
Generación DDL adaptada para PostgreSQL, MySQL, SQLite y SQL Server con tipos de datos específicos.