Files
api-ubigeo/prisma/migrations/20260310035352_init/migration.sql

122 lines
3.6 KiB
SQL

-- CreateTable
CREATE TABLE "paises" (
"id" SERIAL NOT NULL,
"codigo" VARCHAR(3) NOT NULL,
"codigo_alpha2" VARCHAR(2) NOT NULL,
"nombre" VARCHAR(100) NOT NULL,
"nombre_en" VARCHAR(100) NOT NULL,
"capital" VARCHAR(100) NOT NULL,
"region" VARCHAR(50) NOT NULL,
"subregion" VARCHAR(50) NOT NULL,
"emoji" VARCHAR(10) NOT NULL,
"latitud" DECIMAL(10,8),
"longitud" DECIMAL(11,8),
"activo" BOOLEAN NOT NULL DEFAULT true,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "paises_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "departamentos" (
"id" SERIAL NOT NULL,
"codigo" VARCHAR(2) NOT NULL,
"nombre" VARCHAR(100) NOT NULL,
"latitud" DECIMAL(10,8),
"longitud" DECIMAL(11,8),
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "departamentos_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "provincias" (
"id" SERIAL NOT NULL,
"codigo" VARCHAR(4) NOT NULL,
"codigo_dep" VARCHAR(2) NOT NULL,
"nombre" VARCHAR(100) NOT NULL,
"latitud" DECIMAL(10,8),
"longitud" DECIMAL(11,8),
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "provincias_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "distritos" (
"id" SERIAL NOT NULL,
"codigo" VARCHAR(6) NOT NULL,
"codigo_prov" VARCHAR(4) NOT NULL,
"codigo_dep" VARCHAR(2) NOT NULL,
"nombre" VARCHAR(100) NOT NULL,
"capital" VARCHAR(100),
"categoria" VARCHAR(30),
"altitud" DECIMAL(10,2),
"poblacion" INTEGER,
"latitud" DECIMAL(10,8),
"longitud" DECIMAL(11,8),
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "distritos_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "paises_codigo_key" ON "paises"("codigo");
-- CreateIndex
CREATE UNIQUE INDEX "paises_codigo_alpha2_key" ON "paises"("codigo_alpha2");
-- CreateIndex
CREATE INDEX "paises_codigo_idx" ON "paises"("codigo");
-- CreateIndex
CREATE INDEX "paises_codigo_alpha2_idx" ON "paises"("codigo_alpha2");
-- CreateIndex
CREATE INDEX "paises_nombre_idx" ON "paises"("nombre");
-- CreateIndex
CREATE INDEX "paises_region_idx" ON "paises"("region");
-- CreateIndex
CREATE UNIQUE INDEX "departamentos_codigo_key" ON "departamentos"("codigo");
-- CreateIndex
CREATE INDEX "departamentos_codigo_idx" ON "departamentos"("codigo");
-- CreateIndex
CREATE INDEX "departamentos_nombre_idx" ON "departamentos"("nombre");
-- CreateIndex
CREATE UNIQUE INDEX "provincias_codigo_key" ON "provincias"("codigo");
-- CreateIndex
CREATE INDEX "provincias_codigo_idx" ON "provincias"("codigo");
-- CreateIndex
CREATE INDEX "provincias_codigo_dep_idx" ON "provincias"("codigo_dep");
-- CreateIndex
CREATE INDEX "provincias_nombre_idx" ON "provincias"("nombre");
-- CreateIndex
CREATE UNIQUE INDEX "distritos_codigo_key" ON "distritos"("codigo");
-- CreateIndex
CREATE INDEX "distritos_codigo_idx" ON "distritos"("codigo");
-- CreateIndex
CREATE INDEX "distritos_codigo_prov_idx" ON "distritos"("codigo_prov");
-- CreateIndex
CREATE INDEX "distritos_codigo_dep_idx" ON "distritos"("codigo_dep");
-- CreateIndex
CREATE INDEX "distritos_nombre_idx" ON "distritos"("nombre");
-- AddForeignKey
ALTER TABLE "provincias" ADD CONSTRAINT "provincias_codigo_dep_fkey" FOREIGN KEY ("codigo_dep") REFERENCES "departamentos"("codigo") ON DELETE RESTRICT ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "distritos" ADD CONSTRAINT "distritos_codigo_prov_fkey" FOREIGN KEY ("codigo_prov") REFERENCES "provincias"("codigo") ON DELETE RESTRICT ON UPDATE CASCADE;