mirror of
https://github.com/LukeHagar/dokploy.git
synced 2025-12-06 04:19:37 +00:00
refactor: update migration
This commit is contained in:
@@ -19,7 +19,6 @@ CREATE TABLE "user_temp" (
|
|||||||
"email" text NOT NULL,
|
"email" text NOT NULL,
|
||||||
"email_verified" boolean NOT NULL,
|
"email_verified" boolean NOT NULL,
|
||||||
"image" text,
|
"image" text,
|
||||||
"role" text,
|
|
||||||
"banned" boolean,
|
"banned" boolean,
|
||||||
"ban_reason" text,
|
"ban_reason" text,
|
||||||
"ban_expires" timestamp,
|
"ban_expires" timestamp,
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ WITH inserted_users AS (
|
|||||||
token,
|
token,
|
||||||
"email_verified",
|
"email_verified",
|
||||||
"updated_at",
|
"updated_at",
|
||||||
role,
|
|
||||||
"serverIp",
|
"serverIp",
|
||||||
image,
|
image,
|
||||||
"certificateType",
|
"certificateType",
|
||||||
@@ -34,7 +33,6 @@ WITH inserted_users AS (
|
|||||||
COALESCE(auth.token, ''),
|
COALESCE(auth.token, ''),
|
||||||
true,
|
true,
|
||||||
CURRENT_TIMESTAMP,
|
CURRENT_TIMESTAMP,
|
||||||
'admin',
|
|
||||||
a."serverIp",
|
a."serverIp",
|
||||||
auth.image,
|
auth.image,
|
||||||
a."certificateType",
|
a."certificateType",
|
||||||
@@ -109,7 +107,6 @@ inserted_members AS (
|
|||||||
token,
|
token,
|
||||||
"email_verified",
|
"email_verified",
|
||||||
"updated_at",
|
"updated_at",
|
||||||
role,
|
|
||||||
image,
|
image,
|
||||||
"createdAt",
|
"createdAt",
|
||||||
"canAccessToAPI",
|
"canAccessToAPI",
|
||||||
@@ -131,7 +128,6 @@ inserted_members AS (
|
|||||||
COALESCE(u.token, ''),
|
COALESCE(u.token, ''),
|
||||||
true,
|
true,
|
||||||
CURRENT_TIMESTAMP,
|
CURRENT_TIMESTAMP,
|
||||||
'user',
|
|
||||||
auth.image,
|
auth.image,
|
||||||
NOW(),
|
NOW(),
|
||||||
COALESCE(u."canAccessToAPI", false),
|
COALESCE(u."canAccessToAPI", false),
|
||||||
@@ -176,8 +172,27 @@ inserted_member_accounts AS (
|
|||||||
JOIN admin a ON u."adminId" = a."adminId"
|
JOIN admin a ON u."adminId" = a."adminId"
|
||||||
JOIN auth ON auth.id = u."authId"
|
JOIN auth ON auth.id = u."authId"
|
||||||
RETURNING *
|
RETURNING *
|
||||||
|
),
|
||||||
|
inserted_admin_members AS (
|
||||||
|
-- Insertar miembros en las organizaciones (admins como owners)
|
||||||
|
INSERT INTO member (
|
||||||
|
id,
|
||||||
|
"organization_id",
|
||||||
|
"user_id",
|
||||||
|
role,
|
||||||
|
"created_at"
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
gen_random_uuid(),
|
||||||
|
o.id,
|
||||||
|
a."adminId",
|
||||||
|
'owner',
|
||||||
|
NOW()
|
||||||
|
FROM admin a
|
||||||
|
JOIN inserted_orgs o ON o."owner_id" = a."adminId"
|
||||||
|
RETURNING *
|
||||||
)
|
)
|
||||||
-- Insertar miembros en las organizaciones
|
-- Insertar miembros regulares en las organizaciones
|
||||||
INSERT INTO member (
|
INSERT INTO member (
|
||||||
id,
|
id,
|
||||||
"organization_id",
|
"organization_id",
|
||||||
@@ -189,7 +204,7 @@ SELECT
|
|||||||
gen_random_uuid(),
|
gen_random_uuid(),
|
||||||
o.id,
|
o.id,
|
||||||
u."userId",
|
u."userId",
|
||||||
'admin',
|
'member',
|
||||||
NOW()
|
NOW()
|
||||||
FROM "user" u
|
FROM "user" u
|
||||||
JOIN admin a ON u."adminId" = a."adminId"
|
JOIN admin a ON u."adminId" = a."adminId"
|
||||||
|
|||||||
2
apps/dokploy/drizzle/0069_broad_ken_ellis.sql
Normal file
2
apps/dokploy/drizzle/0069_broad_ken_ellis.sql
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
ALTER TABLE "user_temp" ALTER COLUMN "token" SET DEFAULT '';--> statement-breakpoint
|
||||||
|
ALTER TABLE "user_temp" ADD COLUMN "created_at" timestamp DEFAULT now();
|
||||||
@@ -1 +0,0 @@
|
|||||||
ALTER TABLE "user_temp" ADD COLUMN "created_at" timestamp DEFAULT now();
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
ALTER TABLE "user_temp" ALTER COLUMN "token" SET DEFAULT '';
|
|
||||||
@@ -1028,12 +1028,6 @@
|
|||||||
"primaryKey": false,
|
"primaryKey": false,
|
||||||
"notNull": false
|
"notNull": false
|
||||||
},
|
},
|
||||||
"role": {
|
|
||||||
"name": "role",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"banned": {
|
"banned": {
|
||||||
"name": "banned",
|
"name": "banned",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
|
|||||||
@@ -1028,12 +1028,6 @@
|
|||||||
"primaryKey": false,
|
"primaryKey": false,
|
||||||
"notNull": false
|
"notNull": false
|
||||||
},
|
},
|
||||||
"role": {
|
|
||||||
"name": "role",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"banned": {
|
"banned": {
|
||||||
"name": "banned",
|
"name": "banned",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
|
|||||||
@@ -1028,12 +1028,6 @@
|
|||||||
"primaryKey": false,
|
"primaryKey": false,
|
||||||
"notNull": false
|
"notNull": false
|
||||||
},
|
},
|
||||||
"role": {
|
|
||||||
"name": "role",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"banned": {
|
"banned": {
|
||||||
"name": "banned",
|
"name": "banned",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"id": "82a6a31d-7611-410d-8a32-31a36ab369c5",
|
"id": "e0842a94-530d-4a3c-a6b1-16cf37618b8b",
|
||||||
"prevId": "c2e134de-9865-4892-a24d-048aa5be22e8",
|
"prevId": "c2e134de-9865-4892-a24d-048aa5be22e8",
|
||||||
"version": "7",
|
"version": "7",
|
||||||
"dialect": "postgresql",
|
"dialect": "postgresql",
|
||||||
@@ -912,7 +912,8 @@
|
|||||||
"name": "token",
|
"name": "token",
|
||||||
"type": "text",
|
"type": "text",
|
||||||
"primaryKey": false,
|
"primaryKey": false,
|
||||||
"notNull": true
|
"notNull": true,
|
||||||
|
"default": "''"
|
||||||
},
|
},
|
||||||
"isRegistered": {
|
"isRegistered": {
|
||||||
"name": "isRegistered",
|
"name": "isRegistered",
|
||||||
@@ -1035,12 +1036,6 @@
|
|||||||
"primaryKey": false,
|
"primaryKey": false,
|
||||||
"notNull": false
|
"notNull": false
|
||||||
},
|
},
|
||||||
"role": {
|
|
||||||
"name": "role",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false
|
|
||||||
},
|
|
||||||
"banned": {
|
"banned": {
|
||||||
"name": "banned",
|
"name": "banned",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -488,15 +488,8 @@
|
|||||||
{
|
{
|
||||||
"idx": 69,
|
"idx": 69,
|
||||||
"version": "7",
|
"version": "7",
|
||||||
"when": 1739432476590,
|
"when": 1739664410814,
|
||||||
"tag": "0069_known_aqueduct",
|
"tag": "0069_broad_ken_ellis",
|
||||||
"breakpoints": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idx": 70,
|
|
||||||
"version": "7",
|
|
||||||
"when": 1739432513877,
|
|
||||||
"tag": "0070_overrated_the_stranger",
|
|
||||||
"breakpoints": true
|
"breakpoints": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,278 +0,0 @@
|
|||||||
CREATE TABLE "account" (
|
|
||||||
"id" text PRIMARY KEY NOT NULL,
|
|
||||||
"account_id" text NOT NULL,
|
|
||||||
"provider_id" text NOT NULL,
|
|
||||||
"user_id" text NOT NULL,
|
|
||||||
"access_token" text,
|
|
||||||
"refresh_token" text,
|
|
||||||
"id_token" text,
|
|
||||||
"access_token_expires_at" timestamp,
|
|
||||||
"refresh_token_expires_at" timestamp,
|
|
||||||
"scope" text,
|
|
||||||
"password" text,
|
|
||||||
"is2FAEnabled" boolean DEFAULT false NOT NULL,
|
|
||||||
"created_at" timestamp NOT NULL,
|
|
||||||
"updated_at" timestamp NOT NULL,
|
|
||||||
"resetPasswordToken" text,
|
|
||||||
"resetPasswordExpiresAt" text,
|
|
||||||
"confirmationToken" text,
|
|
||||||
"confirmationExpiresAt" text
|
|
||||||
);
|
|
||||||
|
|
||||||
--> statement-breakpoint
|
|
||||||
CREATE TABLE "verification" (
|
|
||||||
"id" text PRIMARY KEY NOT NULL,
|
|
||||||
"identifier" text NOT NULL,
|
|
||||||
"value" text NOT NULL,
|
|
||||||
"expires_at" timestamp NOT NULL,
|
|
||||||
"created_at" timestamp,
|
|
||||||
"updated_at" timestamp
|
|
||||||
);
|
|
||||||
|
|
||||||
-- Primero eliminar las restricciones NOT NULL y foreign keys
|
|
||||||
ALTER TABLE "user" ALTER COLUMN "adminId" DROP NOT NULL;
|
|
||||||
ALTER TABLE "user" ALTER COLUMN "authId" DROP NOT NULL;
|
|
||||||
|
|
||||||
ALTER TABLE "user" DROP CONSTRAINT IF EXISTS "user_adminId_admin_adminId_fk";
|
|
||||||
ALTER TABLE "user" DROP CONSTRAINT IF EXISTS "user_authId_auth_id_fk";
|
|
||||||
ALTER TABLE "admin" DROP CONSTRAINT IF EXISTS "admin_authId_auth_id_fk";
|
|
||||||
ALTER TABLE "project" DROP CONSTRAINT IF EXISTS "project_adminId_admin_adminId_fk";
|
|
||||||
ALTER TABLE "destination" DROP CONSTRAINT IF EXISTS "destination_adminId_admin_adminId_fk";
|
|
||||||
ALTER TABLE "certificate" DROP CONSTRAINT IF EXISTS "certificate_adminId_admin_adminId_fk";
|
|
||||||
ALTER TABLE "session" DROP CONSTRAINT IF EXISTS "session_user_id_auth_id_fk";
|
|
||||||
ALTER TABLE "registry" DROP CONSTRAINT IF EXISTS "registry_adminId_admin_adminId_fk";
|
|
||||||
ALTER TABLE "notification" DROP CONSTRAINT IF EXISTS "notification_adminId_admin_adminId_fk";
|
|
||||||
ALTER TABLE "ssh-key" DROP CONSTRAINT IF EXISTS "ssh-key_adminId_admin_adminId_fk";
|
|
||||||
ALTER TABLE "git_provider" DROP CONSTRAINT IF EXISTS "git_provider_adminId_admin_adminId_fk";
|
|
||||||
ALTER TABLE "server" DROP CONSTRAINT IF EXISTS "server_adminId_admin_adminId_fk";
|
|
||||||
|
|
||||||
-- Luego renombrar las columnas
|
|
||||||
ALTER TABLE "user" RENAME COLUMN "userId" TO "id";
|
|
||||||
ALTER TABLE "project" RENAME COLUMN "adminId" TO "userId";
|
|
||||||
ALTER TABLE "destination" RENAME COLUMN "adminId" TO "userId";
|
|
||||||
ALTER TABLE "certificate" RENAME COLUMN "adminId" TO "userId";
|
|
||||||
ALTER TABLE "registry" RENAME COLUMN "adminId" TO "userId";
|
|
||||||
ALTER TABLE "notification" RENAME COLUMN "adminId" TO "userId";
|
|
||||||
ALTER TABLE "ssh-key" RENAME COLUMN "adminId" TO "userId";
|
|
||||||
ALTER TABLE "git_provider" RENAME COLUMN "adminId" TO "userId";
|
|
||||||
ALTER TABLE "server" RENAME COLUMN "adminId" TO "userId";
|
|
||||||
|
|
||||||
-- Primero agregar todas las columnas sin restricciones
|
|
||||||
ALTER TABLE "user" ADD COLUMN "name" text;
|
|
||||||
ALTER TABLE "user" ADD COLUMN "email" text;
|
|
||||||
ALTER TABLE "user" ADD COLUMN "email_verified" boolean;
|
|
||||||
ALTER TABLE "user" ADD COLUMN "image" text;
|
|
||||||
ALTER TABLE "user" ADD COLUMN "role" text;
|
|
||||||
ALTER TABLE "user" ADD COLUMN "banned" boolean;
|
|
||||||
ALTER TABLE "user" ADD COLUMN "ban_reason" text;
|
|
||||||
ALTER TABLE "user" ADD COLUMN "ban_expires" timestamp;
|
|
||||||
ALTER TABLE "user" ADD COLUMN "updated_at" timestamp;
|
|
||||||
ALTER TABLE "user" ADD COLUMN "serverIp" text;
|
|
||||||
ALTER TABLE "user" ADD COLUMN "certificateType" "certificateType" DEFAULT 'none';
|
|
||||||
ALTER TABLE "user" ADD COLUMN "host" text;
|
|
||||||
ALTER TABLE "user" ADD COLUMN "letsEncryptEmail" text;
|
|
||||||
ALTER TABLE "user" ADD COLUMN "sshPrivateKey" text;
|
|
||||||
ALTER TABLE "user" ADD COLUMN "enableDockerCleanup" boolean DEFAULT false;
|
|
||||||
ALTER TABLE "user" ADD COLUMN "enableLogRotation" boolean DEFAULT false;
|
|
||||||
ALTER TABLE "user" ADD COLUMN "enablePaidFeatures" boolean DEFAULT false;
|
|
||||||
ALTER TABLE "user" ADD COLUMN "metricsConfig" jsonb DEFAULT '{"server":{"type":"Dokploy","refreshRate":60,"port":4500,"token":"","retentionDays":2,"cronJob":"","urlCallback":"","thresholds":{"cpu":0,"memory":0}},"containers":{"refreshRate":60,"services":{"include":[],"exclude":[]}}}';
|
|
||||||
ALTER TABLE "user" ADD COLUMN "cleanupCacheApplications" boolean DEFAULT false;
|
|
||||||
ALTER TABLE "user" ADD COLUMN "cleanupCacheOnPreviews" boolean DEFAULT false;
|
|
||||||
ALTER TABLE "user" ADD COLUMN "cleanupCacheOnCompose" boolean DEFAULT false;
|
|
||||||
|
|
||||||
ALTER TABLE "user" ALTER COLUMN "token" SET DEFAULT '';
|
|
||||||
ALTER TABLE "user" ALTER COLUMN "expirationDate" SET DEFAULT CURRENT_TIMESTAMP + INTERVAL '1 year';
|
|
||||||
ALTER TABLE "user" ALTER COLUMN "createdAt" SET DEFAULT to_char(CURRENT_TIMESTAMP, 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"');
|
|
||||||
|
|
||||||
--> statement-breakpoint
|
|
||||||
-- Luego actualizar los valores nulos
|
|
||||||
UPDATE "user" SET token = '' WHERE token IS NULL;
|
|
||||||
UPDATE "user" SET "expirationDate" = CURRENT_TIMESTAMP + INTERVAL '1 year' WHERE "expirationDate" IS NULL;
|
|
||||||
UPDATE "user" SET "createdAt" = to_char(CURRENT_TIMESTAMP, 'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"') WHERE "createdAt" IS NULL;
|
|
||||||
UPDATE "user" SET "name" = '' WHERE "name" IS NULL;
|
|
||||||
-- Generar emails únicos para registros vacíos
|
|
||||||
UPDATE "user" SET "email" = CONCAT('user_', id, '@dokploy.local') WHERE "email" = '' OR "email" IS NULL;
|
|
||||||
UPDATE "user" SET "email_verified" = COALESCE("email_verified", false) WHERE true;
|
|
||||||
UPDATE "user" SET "role" = COALESCE("role", 'user') WHERE true;
|
|
||||||
UPDATE "user" SET "banned" = COALESCE("banned", false) WHERE true;
|
|
||||||
UPDATE "user" SET "updated_at" = COALESCE("updated_at", CURRENT_TIMESTAMP) WHERE true;
|
|
||||||
UPDATE "user" SET "certificateType" = COALESCE("certificateType", 'none') WHERE true;
|
|
||||||
UPDATE "user" SET "enableDockerCleanup" = COALESCE("enableDockerCleanup", false) WHERE true;
|
|
||||||
UPDATE "user" SET "enableLogRotation" = COALESCE("enableLogRotation", false) WHERE true;
|
|
||||||
UPDATE "user" SET "enablePaidFeatures" = COALESCE("enablePaidFeatures", false) WHERE true;
|
|
||||||
UPDATE "user" SET "metricsConfig" = COALESCE("metricsConfig", '{"server":{"type":"Dokploy","refreshRate":60,"port":4500,"token":"","retentionDays":2,"cronJob":"","urlCallback":"","thresholds":{"cpu":0,"memory":0}},"containers":{"refreshRate":60,"services":{"include":[],"exclude":[]}}}') WHERE true;
|
|
||||||
UPDATE "user" SET "cleanupCacheApplications" = COALESCE("cleanupCacheApplications", false) WHERE true;
|
|
||||||
UPDATE "user" SET "cleanupCacheOnPreviews" = COALESCE("cleanupCacheOnPreviews", false) WHERE true;
|
|
||||||
UPDATE "user" SET "cleanupCacheOnCompose" = COALESCE("cleanupCacheOnCompose", false) WHERE true;
|
|
||||||
--> statement-breakpoint
|
|
||||||
|
|
||||||
-- Migrar datos de auth a user
|
|
||||||
INSERT INTO "user" (
|
|
||||||
id,
|
|
||||||
name,
|
|
||||||
email,
|
|
||||||
email_verified,
|
|
||||||
image,
|
|
||||||
role,
|
|
||||||
updated_at
|
|
||||||
)
|
|
||||||
SELECT
|
|
||||||
id,
|
|
||||||
'' as name,
|
|
||||||
email,
|
|
||||||
true as email_verified,
|
|
||||||
image,
|
|
||||||
CASE
|
|
||||||
WHEN rol = 'admin' THEN 'admin'
|
|
||||||
ELSE 'user'
|
|
||||||
END as role,
|
|
||||||
CAST("createdAt" AS timestamp) as updated_at
|
|
||||||
FROM "auth";
|
|
||||||
|
|
||||||
-- Migrar datos de auth a account
|
|
||||||
INSERT INTO "account" (
|
|
||||||
id,
|
|
||||||
account_id,
|
|
||||||
provider_id,
|
|
||||||
user_id,
|
|
||||||
password,
|
|
||||||
"is2FAEnabled",
|
|
||||||
created_at,
|
|
||||||
updated_at
|
|
||||||
)
|
|
||||||
SELECT
|
|
||||||
id as id,
|
|
||||||
id as account_id,
|
|
||||||
'credentials' as provider_id,
|
|
||||||
id as user_id,
|
|
||||||
password,
|
|
||||||
"is2FAEnabled",
|
|
||||||
CAST("createdAt" AS timestamp) as created_at,
|
|
||||||
CAST("createdAt" AS timestamp) as updated_at
|
|
||||||
FROM "auth";
|
|
||||||
|
|
||||||
-- Migrar datos de admin a user
|
|
||||||
UPDATE "user" u
|
|
||||||
SET
|
|
||||||
"serverIp" = a."serverIp",
|
|
||||||
"certificateType" = a."certificateType",
|
|
||||||
"host" = a."host",
|
|
||||||
"letsEncryptEmail" = a."letsEncryptEmail",
|
|
||||||
"sshPrivateKey" = a."sshPrivateKey",
|
|
||||||
"enableDockerCleanup" = a."enableDockerCleanup",
|
|
||||||
"enableLogRotation" = a."enableLogRotation",
|
|
||||||
"enablePaidFeatures" = a."enablePaidFeatures",
|
|
||||||
"metricsConfig" = a."metricsConfig",
|
|
||||||
"cleanupCacheApplications" = a."cleanupCacheApplications",
|
|
||||||
"cleanupCacheOnPreviews" = a."cleanupCacheOnPreviews",
|
|
||||||
"cleanupCacheOnCompose" = a."cleanupCacheOnCompose"
|
|
||||||
FROM "admin" a
|
|
||||||
WHERE u.id = a."authId";
|
|
||||||
|
|
||||||
-- Actualizar referencias en las tablas relacionadas
|
|
||||||
UPDATE "project" p
|
|
||||||
SET "userId" = a."authId"
|
|
||||||
FROM "admin" a
|
|
||||||
WHERE p."userId" = a."adminId";
|
|
||||||
|
|
||||||
UPDATE "destination" d
|
|
||||||
SET "userId" = a."authId"
|
|
||||||
FROM "admin" a
|
|
||||||
WHERE d."userId" = a."adminId";
|
|
||||||
|
|
||||||
UPDATE "certificate" c
|
|
||||||
SET "userId" = a."authId"
|
|
||||||
FROM "admin" a
|
|
||||||
WHERE c."userId" = a."adminId";
|
|
||||||
|
|
||||||
UPDATE "registry" r
|
|
||||||
SET "userId" = a."authId"
|
|
||||||
FROM "admin" a
|
|
||||||
WHERE r."userId" = a."adminId";
|
|
||||||
|
|
||||||
UPDATE "notification" n
|
|
||||||
SET "userId" = a."authId"
|
|
||||||
FROM "admin" a
|
|
||||||
WHERE n."userId" = a."adminId";
|
|
||||||
|
|
||||||
UPDATE "ssh-key" s
|
|
||||||
SET "userId" = a."authId"
|
|
||||||
FROM "admin" a
|
|
||||||
WHERE s."userId" = a."adminId";
|
|
||||||
|
|
||||||
UPDATE "git_provider" g
|
|
||||||
SET "userId" = a."authId"
|
|
||||||
FROM "admin" a
|
|
||||||
WHERE g."userId" = a."adminId";
|
|
||||||
|
|
||||||
UPDATE "server" s
|
|
||||||
SET "userId" = a."authId"
|
|
||||||
FROM "admin" a
|
|
||||||
WHERE s."userId" = a."adminId";
|
|
||||||
|
|
||||||
-- Ahora agregar las restricciones NOT NULL después de migrar los datos
|
|
||||||
ALTER TABLE "user" ALTER COLUMN "name" SET NOT NULL;
|
|
||||||
ALTER TABLE "user" ALTER COLUMN "email" SET NOT NULL;
|
|
||||||
ALTER TABLE "user" ALTER COLUMN "email_verified" SET NOT NULL;
|
|
||||||
ALTER TABLE "user" ALTER COLUMN "updated_at" SET NOT NULL;
|
|
||||||
ALTER TABLE "user" ALTER COLUMN "certificateType" SET NOT NULL;
|
|
||||||
ALTER TABLE "user" ALTER COLUMN "enableDockerCleanup" SET NOT NULL;
|
|
||||||
ALTER TABLE "user" ALTER COLUMN "enableLogRotation" SET NOT NULL;
|
|
||||||
ALTER TABLE "user" ALTER COLUMN "enablePaidFeatures" SET NOT NULL;
|
|
||||||
ALTER TABLE "user" ALTER COLUMN "metricsConfig" SET NOT NULL;
|
|
||||||
ALTER TABLE "user" ALTER COLUMN "cleanupCacheApplications" SET NOT NULL;
|
|
||||||
ALTER TABLE "user" ALTER COLUMN "cleanupCacheOnPreviews" SET NOT NULL;
|
|
||||||
ALTER TABLE "user" ALTER COLUMN "cleanupCacheOnCompose" SET NOT NULL;
|
|
||||||
|
|
||||||
-- Modificar session
|
|
||||||
ALTER TABLE "session" ALTER COLUMN "expires_at" SET DATA TYPE timestamp;
|
|
||||||
ALTER TABLE "session" ADD COLUMN "token" text;
|
|
||||||
ALTER TABLE "session" ADD COLUMN "created_at" timestamp;
|
|
||||||
ALTER TABLE "session" ADD COLUMN "updated_at" timestamp;
|
|
||||||
ALTER TABLE "session" ADD COLUMN "ip_address" text;
|
|
||||||
ALTER TABLE "session" ADD COLUMN "user_agent" text;
|
|
||||||
ALTER TABLE "session" ADD COLUMN "impersonated_by" text;
|
|
||||||
|
|
||||||
-- Agregar nuevas restricciones después de migrar todos los datos
|
|
||||||
ALTER TABLE "account" ADD CONSTRAINT "account_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;
|
|
||||||
ALTER TABLE "project" ADD CONSTRAINT "project_userId_user_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "destination" ADD CONSTRAINT "destination_userId_user_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "certificate" ADD CONSTRAINT "certificate_userId_user_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "session" ADD CONSTRAINT "session_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE no action ON UPDATE no action;
|
|
||||||
ALTER TABLE "registry" ADD CONSTRAINT "registry_userId_user_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "notification" ADD CONSTRAINT "notification_userId_user_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "ssh-key" ADD CONSTRAINT "ssh-key_userId_user_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "git_provider" ADD CONSTRAINT "git_provider_userId_user_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
ALTER TABLE "server" ADD CONSTRAINT "server_userId_user_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;
|
|
||||||
|
|
||||||
-- Agregar restricciones únicas
|
|
||||||
ALTER TABLE "user" ADD CONSTRAINT "user_email_unique" UNIQUE("email");
|
|
||||||
ALTER TABLE "session" ADD CONSTRAINT "session_token_unique" UNIQUE("token");
|
|
||||||
|
|
||||||
-- Eliminar columnas antiguas
|
|
||||||
ALTER TABLE "user" DROP COLUMN IF EXISTS "adminId";
|
|
||||||
ALTER TABLE "user" DROP COLUMN IF EXISTS "authId";
|
|
||||||
|
|
||||||
-- Eliminar columnas de admin
|
|
||||||
ALTER TABLE "admin" DROP COLUMN IF EXISTS "adminId";
|
|
||||||
ALTER TABLE "admin" DROP COLUMN IF EXISTS "serverIp";
|
|
||||||
ALTER TABLE "admin" DROP COLUMN IF EXISTS "certificateType";
|
|
||||||
ALTER TABLE "admin" DROP COLUMN IF EXISTS "host";
|
|
||||||
ALTER TABLE "admin" DROP COLUMN IF EXISTS "letsEncryptEmail";
|
|
||||||
ALTER TABLE "admin" DROP COLUMN IF EXISTS "sshPrivateKey";
|
|
||||||
ALTER TABLE "admin" DROP COLUMN IF EXISTS "enableDockerCleanup";
|
|
||||||
ALTER TABLE "admin" DROP COLUMN IF EXISTS "enableLogRotation";
|
|
||||||
ALTER TABLE "admin" DROP COLUMN IF EXISTS "authId";
|
|
||||||
ALTER TABLE "admin" DROP COLUMN IF EXISTS "createdAt";
|
|
||||||
ALTER TABLE "admin" DROP COLUMN IF EXISTS "stripeCustomerId";
|
|
||||||
ALTER TABLE "admin" DROP COLUMN IF EXISTS "stripeSubscriptionId";
|
|
||||||
ALTER TABLE "admin" DROP COLUMN IF EXISTS "serversQuantity";
|
|
||||||
ALTER TABLE "admin" DROP COLUMN IF EXISTS "enablePaidFeatures";
|
|
||||||
ALTER TABLE "admin" DROP COLUMN IF EXISTS "metricsConfig";
|
|
||||||
ALTER TABLE "admin" DROP COLUMN IF EXISTS "cleanupCacheApplications";
|
|
||||||
ALTER TABLE "admin" DROP COLUMN IF EXISTS "cleanupCacheOnPreviews";
|
|
||||||
ALTER TABLE "admin" DROP COLUMN IF EXISTS "cleanupCacheOnCompose";
|
|
||||||
|
|
||||||
-- Eliminar tablas antiguas
|
|
||||||
DROP TABLE IF EXISTS "auth" CASCADE;
|
|
||||||
DROP TABLE IF EXISTS "admin" CASCADE;
|
|
||||||
@@ -111,7 +111,6 @@ export const users_temp = pgTable("user_temp", {
|
|||||||
email: text("email").notNull().unique(),
|
email: text("email").notNull().unique(),
|
||||||
emailVerified: boolean("email_verified").notNull(),
|
emailVerified: boolean("email_verified").notNull(),
|
||||||
image: text("image"),
|
image: text("image"),
|
||||||
role: text("role"),
|
|
||||||
banned: boolean("banned"),
|
banned: boolean("banned"),
|
||||||
banReason: text("ban_reason"),
|
banReason: text("ban_reason"),
|
||||||
banExpires: timestamp("ban_expires"),
|
banExpires: timestamp("ban_expires"),
|
||||||
|
|||||||
Reference in New Issue
Block a user