lapeh 1.0.12 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +5 -6
- package/.vscode/settings.json +5 -0
- package/docker-compose.yml +8 -1
- package/package.json +4 -3
- package/prisma/migrations/20251226000329_create_pets_table/migration.sql +11 -0
- package/prisma/migrations/20251226001249_create_pets_table/migration.sql +82 -0
- package/prisma/migrations/20251226001717_restore_core_models/migration.sql +236 -0
- package/prisma/migrations/migration_lock.toml +3 -3
- package/prisma/schema.prisma +170 -155
- package/prisma/seed.ts +59 -0
- package/readme.md +38 -0
- package/scripts/compile-schema.js +2 -2
- package/scripts/init-project.js +16 -1
- package/scripts/make-controller.js +205 -0
- package/src/controllers/authController.ts +9 -9
- package/src/controllers/petController.ts +132 -0
- package/src/models/core.model +163 -0
- package/src/models/pets.model +9 -0
- package/src/prisma.ts +1 -1
- package/src/redis.ts +14 -6
- package/src/routes/pets.ts +12 -0
- package/src/schema/pet-schema.ts +14 -0
- package/src/server.ts +2 -0
- package/src/models/schema.prisma +0 -159
package/.env.example
CHANGED
|
@@ -3,12 +3,11 @@ DATABASE_PROVIDER="postgresql"
|
|
|
3
3
|
DATABASE_URL="postgresql://sianu:12341234@localhost:5432/db_example_test?schema=public"
|
|
4
4
|
JWT_SECRET="replace_this_with_a_secure_random_string"
|
|
5
5
|
|
|
6
|
-
# Redis Configuration (Optional)
|
|
7
|
-
# If REDIS_URL is not set or connection fails, the framework will automatically
|
|
8
|
-
# switch to an in-memory Redis mock (bundled). No installation required for development.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
# REDIS_URL="redis://localhost:6379"
|
|
6
|
+
# Redis Configuration (Optional)
|
|
7
|
+
# If REDIS_URL is not set or connection fails, the framework will automatically
|
|
8
|
+
# switch to an in-memory Redis mock (bundled). No installation required for development.
|
|
9
|
+
# REDIS_URL="redis://lapeh:12341234@localhost:6379"
|
|
10
|
+
# NO_REDIS="true"
|
|
12
11
|
|
|
13
12
|
# To force disable Redis and use in-memory mock even if Redis is available:
|
|
14
13
|
# NO_REDIS="true"
|
package/docker-compose.yml
CHANGED
|
@@ -2,7 +2,14 @@ version: "3.9"
|
|
|
2
2
|
services:
|
|
3
3
|
redis:
|
|
4
4
|
image: redis:7-alpine
|
|
5
|
-
command:
|
|
5
|
+
command:
|
|
6
|
+
- "redis-server"
|
|
7
|
+
- "--appendonly"
|
|
8
|
+
- "yes"
|
|
9
|
+
- "--user"
|
|
10
|
+
- "default on >12341234 ~* +@all"
|
|
11
|
+
- "--user"
|
|
12
|
+
- "lapeh on >12341234 ~* +@all"
|
|
6
13
|
ports:
|
|
7
14
|
- "6379:6379"
|
|
8
15
|
volumes:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lapeh",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"description": "Framework API Express yang siap pakai (Standardized)",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
@@ -18,10 +18,12 @@
|
|
|
18
18
|
"prisma:deploy": "node scripts/compile-schema.js && prisma migrate deploy",
|
|
19
19
|
"db:seed": "prisma db seed",
|
|
20
20
|
"db:reset": "prisma migrate reset",
|
|
21
|
+
"db:rs": "prisma migrate reset --force && prisma db seed",
|
|
21
22
|
"db:studio": "prisma studio",
|
|
22
23
|
"generate:jwt": "node scripts/generate-jwt-secret.js",
|
|
23
24
|
"make:module": "node scripts/make-module.js",
|
|
24
|
-
"make:model": "node scripts/make-model.js"
|
|
25
|
+
"make:model": "node scripts/make-model.js",
|
|
26
|
+
"make:controller": "node scripts/make-controller.js"
|
|
25
27
|
},
|
|
26
28
|
"keywords": [
|
|
27
29
|
"express",
|
|
@@ -72,7 +74,6 @@
|
|
|
72
74
|
"nodemon": "3.1.11",
|
|
73
75
|
"prisma": "7.2.0",
|
|
74
76
|
"ts-node": "10.9.2",
|
|
75
|
-
"ts-node-dev": "2.0.0",
|
|
76
77
|
"typescript": "5.9.3"
|
|
77
78
|
}
|
|
78
79
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
-- CreateTable
|
|
2
|
+
CREATE TABLE "pets" (
|
|
3
|
+
"id" BIGSERIAL NOT NULL,
|
|
4
|
+
"name" VARCHAR(255) NOT NULL,
|
|
5
|
+
"species" VARCHAR(100) NOT NULL,
|
|
6
|
+
"age" SMALLINT NOT NULL,
|
|
7
|
+
"created_at" TIMESTAMP(0),
|
|
8
|
+
"updated_at" TIMESTAMP(0),
|
|
9
|
+
|
|
10
|
+
CONSTRAINT "pets_pkey" PRIMARY KEY ("id")
|
|
11
|
+
);
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Warnings:
|
|
3
|
+
|
|
4
|
+
- You are about to drop the `cache` table. If the table is not empty, all the data it contains will be lost.
|
|
5
|
+
- You are about to drop the `cache_locks` table. If the table is not empty, all the data it contains will be lost.
|
|
6
|
+
- You are about to drop the `failed_jobs` table. If the table is not empty, all the data it contains will be lost.
|
|
7
|
+
- You are about to drop the `job_batches` table. If the table is not empty, all the data it contains will be lost.
|
|
8
|
+
- You are about to drop the `jobs` table. If the table is not empty, all the data it contains will be lost.
|
|
9
|
+
- You are about to drop the `migrations` table. If the table is not empty, all the data it contains will be lost.
|
|
10
|
+
- You are about to drop the `password_reset_tokens` table. If the table is not empty, all the data it contains will be lost.
|
|
11
|
+
- You are about to drop the `permissions` table. If the table is not empty, all the data it contains will be lost.
|
|
12
|
+
- You are about to drop the `personal_access_tokens` table. If the table is not empty, all the data it contains will be lost.
|
|
13
|
+
- You are about to drop the `role_permissions` table. If the table is not empty, all the data it contains will be lost.
|
|
14
|
+
- You are about to drop the `roles` table. If the table is not empty, all the data it contains will be lost.
|
|
15
|
+
- You are about to drop the `sessions` table. If the table is not empty, all the data it contains will be lost.
|
|
16
|
+
- You are about to drop the `user_permissions` table. If the table is not empty, all the data it contains will be lost.
|
|
17
|
+
- You are about to drop the `user_roles` table. If the table is not empty, all the data it contains will be lost.
|
|
18
|
+
- You are about to drop the `users` table. If the table is not empty, all the data it contains will be lost.
|
|
19
|
+
|
|
20
|
+
*/
|
|
21
|
+
-- DropForeignKey
|
|
22
|
+
ALTER TABLE "role_permissions" DROP CONSTRAINT "role_permissions_permission_id_fkey";
|
|
23
|
+
|
|
24
|
+
-- DropForeignKey
|
|
25
|
+
ALTER TABLE "role_permissions" DROP CONSTRAINT "role_permissions_role_id_fkey";
|
|
26
|
+
|
|
27
|
+
-- DropForeignKey
|
|
28
|
+
ALTER TABLE "user_permissions" DROP CONSTRAINT "user_permissions_permission_id_fkey";
|
|
29
|
+
|
|
30
|
+
-- DropForeignKey
|
|
31
|
+
ALTER TABLE "user_permissions" DROP CONSTRAINT "user_permissions_user_id_fkey";
|
|
32
|
+
|
|
33
|
+
-- DropForeignKey
|
|
34
|
+
ALTER TABLE "user_roles" DROP CONSTRAINT "user_roles_role_id_fkey";
|
|
35
|
+
|
|
36
|
+
-- DropForeignKey
|
|
37
|
+
ALTER TABLE "user_roles" DROP CONSTRAINT "user_roles_user_id_fkey";
|
|
38
|
+
|
|
39
|
+
-- DropTable
|
|
40
|
+
DROP TABLE "cache";
|
|
41
|
+
|
|
42
|
+
-- DropTable
|
|
43
|
+
DROP TABLE "cache_locks";
|
|
44
|
+
|
|
45
|
+
-- DropTable
|
|
46
|
+
DROP TABLE "failed_jobs";
|
|
47
|
+
|
|
48
|
+
-- DropTable
|
|
49
|
+
DROP TABLE "job_batches";
|
|
50
|
+
|
|
51
|
+
-- DropTable
|
|
52
|
+
DROP TABLE "jobs";
|
|
53
|
+
|
|
54
|
+
-- DropTable
|
|
55
|
+
DROP TABLE "migrations";
|
|
56
|
+
|
|
57
|
+
-- DropTable
|
|
58
|
+
DROP TABLE "password_reset_tokens";
|
|
59
|
+
|
|
60
|
+
-- DropTable
|
|
61
|
+
DROP TABLE "permissions";
|
|
62
|
+
|
|
63
|
+
-- DropTable
|
|
64
|
+
DROP TABLE "personal_access_tokens";
|
|
65
|
+
|
|
66
|
+
-- DropTable
|
|
67
|
+
DROP TABLE "role_permissions";
|
|
68
|
+
|
|
69
|
+
-- DropTable
|
|
70
|
+
DROP TABLE "roles";
|
|
71
|
+
|
|
72
|
+
-- DropTable
|
|
73
|
+
DROP TABLE "sessions";
|
|
74
|
+
|
|
75
|
+
-- DropTable
|
|
76
|
+
DROP TABLE "user_permissions";
|
|
77
|
+
|
|
78
|
+
-- DropTable
|
|
79
|
+
DROP TABLE "user_roles";
|
|
80
|
+
|
|
81
|
+
-- DropTable
|
|
82
|
+
DROP TABLE "users";
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
-- CreateTable
|
|
2
|
+
CREATE TABLE "cache" (
|
|
3
|
+
"key" VARCHAR(255) NOT NULL,
|
|
4
|
+
"value" TEXT NOT NULL,
|
|
5
|
+
"expiration" INTEGER NOT NULL,
|
|
6
|
+
|
|
7
|
+
CONSTRAINT "cache_pkey" PRIMARY KEY ("key")
|
|
8
|
+
);
|
|
9
|
+
|
|
10
|
+
-- CreateTable
|
|
11
|
+
CREATE TABLE "cache_locks" (
|
|
12
|
+
"key" VARCHAR(255) NOT NULL,
|
|
13
|
+
"owner" VARCHAR(255) NOT NULL,
|
|
14
|
+
"expiration" INTEGER NOT NULL,
|
|
15
|
+
|
|
16
|
+
CONSTRAINT "cache_locks_pkey" PRIMARY KEY ("key")
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
-- CreateTable
|
|
20
|
+
CREATE TABLE "failed_jobs" (
|
|
21
|
+
"id" BIGSERIAL NOT NULL,
|
|
22
|
+
"uuid" VARCHAR(255) NOT NULL,
|
|
23
|
+
"connection" TEXT NOT NULL,
|
|
24
|
+
"queue" TEXT NOT NULL,
|
|
25
|
+
"payload" TEXT NOT NULL,
|
|
26
|
+
"exception" TEXT NOT NULL,
|
|
27
|
+
"failed_at" TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
28
|
+
|
|
29
|
+
CONSTRAINT "failed_jobs_pkey" PRIMARY KEY ("id")
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
-- CreateTable
|
|
33
|
+
CREATE TABLE "job_batches" (
|
|
34
|
+
"id" VARCHAR(255) NOT NULL,
|
|
35
|
+
"name" VARCHAR(255) NOT NULL,
|
|
36
|
+
"total_jobs" INTEGER NOT NULL,
|
|
37
|
+
"pending_jobs" INTEGER NOT NULL,
|
|
38
|
+
"failed_jobs" INTEGER NOT NULL,
|
|
39
|
+
"failed_job_ids" TEXT NOT NULL,
|
|
40
|
+
"options" TEXT,
|
|
41
|
+
"cancelled_at" INTEGER,
|
|
42
|
+
"created_at" INTEGER NOT NULL,
|
|
43
|
+
"finished_at" INTEGER,
|
|
44
|
+
|
|
45
|
+
CONSTRAINT "job_batches_pkey" PRIMARY KEY ("id")
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
-- CreateTable
|
|
49
|
+
CREATE TABLE "jobs" (
|
|
50
|
+
"id" BIGSERIAL NOT NULL,
|
|
51
|
+
"queue" VARCHAR(255) NOT NULL,
|
|
52
|
+
"payload" TEXT NOT NULL,
|
|
53
|
+
"attempts" SMALLINT NOT NULL,
|
|
54
|
+
"reserved_at" INTEGER,
|
|
55
|
+
"available_at" INTEGER NOT NULL,
|
|
56
|
+
"created_at" INTEGER NOT NULL,
|
|
57
|
+
|
|
58
|
+
CONSTRAINT "jobs_pkey" PRIMARY KEY ("id")
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
-- CreateTable
|
|
62
|
+
CREATE TABLE "migrations" (
|
|
63
|
+
"id" SERIAL NOT NULL,
|
|
64
|
+
"migration" VARCHAR(255) NOT NULL,
|
|
65
|
+
"batch" INTEGER NOT NULL,
|
|
66
|
+
|
|
67
|
+
CONSTRAINT "migrations_pkey" PRIMARY KEY ("id")
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
-- CreateTable
|
|
71
|
+
CREATE TABLE "password_reset_tokens" (
|
|
72
|
+
"email" VARCHAR(255) NOT NULL,
|
|
73
|
+
"token" VARCHAR(255) NOT NULL,
|
|
74
|
+
"created_at" TIMESTAMP(0),
|
|
75
|
+
|
|
76
|
+
CONSTRAINT "password_reset_tokens_pkey" PRIMARY KEY ("email")
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
-- CreateTable
|
|
80
|
+
CREATE TABLE "personal_access_tokens" (
|
|
81
|
+
"id" BIGSERIAL NOT NULL,
|
|
82
|
+
"tokenable_type" VARCHAR(255) NOT NULL,
|
|
83
|
+
"tokenable_id" BIGINT NOT NULL,
|
|
84
|
+
"name" TEXT NOT NULL,
|
|
85
|
+
"token" VARCHAR(64) NOT NULL,
|
|
86
|
+
"abilities" TEXT,
|
|
87
|
+
"last_used_at" TIMESTAMP(0),
|
|
88
|
+
"expires_at" TIMESTAMP(0),
|
|
89
|
+
"created_at" TIMESTAMP(0),
|
|
90
|
+
"updated_at" TIMESTAMP(0),
|
|
91
|
+
|
|
92
|
+
CONSTRAINT "personal_access_tokens_pkey" PRIMARY KEY ("id")
|
|
93
|
+
);
|
|
94
|
+
|
|
95
|
+
-- CreateTable
|
|
96
|
+
CREATE TABLE "sessions" (
|
|
97
|
+
"id" VARCHAR(255) NOT NULL,
|
|
98
|
+
"user_id" BIGINT,
|
|
99
|
+
"ip_address" VARCHAR(45),
|
|
100
|
+
"user_agent" TEXT,
|
|
101
|
+
"payload" TEXT NOT NULL,
|
|
102
|
+
"last_activity" INTEGER NOT NULL,
|
|
103
|
+
|
|
104
|
+
CONSTRAINT "sessions_pkey" PRIMARY KEY ("id")
|
|
105
|
+
);
|
|
106
|
+
|
|
107
|
+
-- CreateTable
|
|
108
|
+
CREATE TABLE "users" (
|
|
109
|
+
"id" BIGSERIAL NOT NULL,
|
|
110
|
+
"uuid" UUID NOT NULL,
|
|
111
|
+
"name" VARCHAR(255) NOT NULL,
|
|
112
|
+
"email" VARCHAR(255) NOT NULL,
|
|
113
|
+
"avatar" VARCHAR(255),
|
|
114
|
+
"avatar_url" VARCHAR(255),
|
|
115
|
+
"email_verified_at" TIMESTAMP(0),
|
|
116
|
+
"password" VARCHAR(255) NOT NULL,
|
|
117
|
+
"remember_token" VARCHAR(100),
|
|
118
|
+
"created_at" TIMESTAMP(0),
|
|
119
|
+
"updated_at" TIMESTAMP(0),
|
|
120
|
+
|
|
121
|
+
CONSTRAINT "users_pkey" PRIMARY KEY ("id")
|
|
122
|
+
);
|
|
123
|
+
|
|
124
|
+
-- CreateTable
|
|
125
|
+
CREATE TABLE "roles" (
|
|
126
|
+
"id" BIGSERIAL NOT NULL,
|
|
127
|
+
"name" VARCHAR(255) NOT NULL,
|
|
128
|
+
"slug" VARCHAR(255) NOT NULL,
|
|
129
|
+
"description" TEXT,
|
|
130
|
+
"created_at" TIMESTAMP(0),
|
|
131
|
+
"updated_at" TIMESTAMP(0),
|
|
132
|
+
|
|
133
|
+
CONSTRAINT "roles_pkey" PRIMARY KEY ("id")
|
|
134
|
+
);
|
|
135
|
+
|
|
136
|
+
-- CreateTable
|
|
137
|
+
CREATE TABLE "permissions" (
|
|
138
|
+
"id" BIGSERIAL NOT NULL,
|
|
139
|
+
"name" VARCHAR(255) NOT NULL,
|
|
140
|
+
"slug" VARCHAR(255) NOT NULL,
|
|
141
|
+
"description" TEXT,
|
|
142
|
+
"created_at" TIMESTAMP(0),
|
|
143
|
+
"updated_at" TIMESTAMP(0),
|
|
144
|
+
|
|
145
|
+
CONSTRAINT "permissions_pkey" PRIMARY KEY ("id")
|
|
146
|
+
);
|
|
147
|
+
|
|
148
|
+
-- CreateTable
|
|
149
|
+
CREATE TABLE "user_roles" (
|
|
150
|
+
"id" BIGSERIAL NOT NULL,
|
|
151
|
+
"user_id" BIGINT NOT NULL,
|
|
152
|
+
"role_id" BIGINT NOT NULL,
|
|
153
|
+
"created_at" TIMESTAMP(0),
|
|
154
|
+
|
|
155
|
+
CONSTRAINT "user_roles_pkey" PRIMARY KEY ("id")
|
|
156
|
+
);
|
|
157
|
+
|
|
158
|
+
-- CreateTable
|
|
159
|
+
CREATE TABLE "role_permissions" (
|
|
160
|
+
"id" BIGSERIAL NOT NULL,
|
|
161
|
+
"role_id" BIGINT NOT NULL,
|
|
162
|
+
"permission_id" BIGINT NOT NULL,
|
|
163
|
+
"created_at" TIMESTAMP(0),
|
|
164
|
+
|
|
165
|
+
CONSTRAINT "role_permissions_pkey" PRIMARY KEY ("id")
|
|
166
|
+
);
|
|
167
|
+
|
|
168
|
+
-- CreateTable
|
|
169
|
+
CREATE TABLE "user_permissions" (
|
|
170
|
+
"id" BIGSERIAL NOT NULL,
|
|
171
|
+
"user_id" BIGINT NOT NULL,
|
|
172
|
+
"permission_id" BIGINT NOT NULL,
|
|
173
|
+
"created_at" TIMESTAMP(0),
|
|
174
|
+
|
|
175
|
+
CONSTRAINT "user_permissions_pkey" PRIMARY KEY ("id")
|
|
176
|
+
);
|
|
177
|
+
|
|
178
|
+
-- CreateIndex
|
|
179
|
+
CREATE UNIQUE INDEX "failed_jobs_uuid_key" ON "failed_jobs"("uuid");
|
|
180
|
+
|
|
181
|
+
-- CreateIndex
|
|
182
|
+
CREATE INDEX "jobs_queue_idx" ON "jobs"("queue");
|
|
183
|
+
|
|
184
|
+
-- CreateIndex
|
|
185
|
+
CREATE UNIQUE INDEX "personal_access_tokens_token_key" ON "personal_access_tokens"("token");
|
|
186
|
+
|
|
187
|
+
-- CreateIndex
|
|
188
|
+
CREATE INDEX "personal_access_tokens_expires_at_idx" ON "personal_access_tokens"("expires_at");
|
|
189
|
+
|
|
190
|
+
-- CreateIndex
|
|
191
|
+
CREATE INDEX "personal_access_tokens_tokenable_type_tokenable_id_idx" ON "personal_access_tokens"("tokenable_type", "tokenable_id");
|
|
192
|
+
|
|
193
|
+
-- CreateIndex
|
|
194
|
+
CREATE INDEX "sessions_last_activity_idx" ON "sessions"("last_activity");
|
|
195
|
+
|
|
196
|
+
-- CreateIndex
|
|
197
|
+
CREATE INDEX "sessions_user_id_idx" ON "sessions"("user_id");
|
|
198
|
+
|
|
199
|
+
-- CreateIndex
|
|
200
|
+
CREATE UNIQUE INDEX "users_uuid_key" ON "users"("uuid");
|
|
201
|
+
|
|
202
|
+
-- CreateIndex
|
|
203
|
+
CREATE UNIQUE INDEX "users_email_key" ON "users"("email");
|
|
204
|
+
|
|
205
|
+
-- CreateIndex
|
|
206
|
+
CREATE UNIQUE INDEX "roles_slug_key" ON "roles"("slug");
|
|
207
|
+
|
|
208
|
+
-- CreateIndex
|
|
209
|
+
CREATE UNIQUE INDEX "permissions_slug_key" ON "permissions"("slug");
|
|
210
|
+
|
|
211
|
+
-- CreateIndex
|
|
212
|
+
CREATE UNIQUE INDEX "user_roles_user_id_role_id_key" ON "user_roles"("user_id", "role_id");
|
|
213
|
+
|
|
214
|
+
-- CreateIndex
|
|
215
|
+
CREATE UNIQUE INDEX "role_permissions_role_id_permission_id_key" ON "role_permissions"("role_id", "permission_id");
|
|
216
|
+
|
|
217
|
+
-- CreateIndex
|
|
218
|
+
CREATE UNIQUE INDEX "user_permissions_user_id_permission_id_key" ON "user_permissions"("user_id", "permission_id");
|
|
219
|
+
|
|
220
|
+
-- AddForeignKey
|
|
221
|
+
ALTER TABLE "user_roles" ADD CONSTRAINT "user_roles_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION;
|
|
222
|
+
|
|
223
|
+
-- AddForeignKey
|
|
224
|
+
ALTER TABLE "user_roles" ADD CONSTRAINT "user_roles_role_id_fkey" FOREIGN KEY ("role_id") REFERENCES "roles"("id") ON DELETE CASCADE ON UPDATE NO ACTION;
|
|
225
|
+
|
|
226
|
+
-- AddForeignKey
|
|
227
|
+
ALTER TABLE "role_permissions" ADD CONSTRAINT "role_permissions_role_id_fkey" FOREIGN KEY ("role_id") REFERENCES "roles"("id") ON DELETE CASCADE ON UPDATE NO ACTION;
|
|
228
|
+
|
|
229
|
+
-- AddForeignKey
|
|
230
|
+
ALTER TABLE "role_permissions" ADD CONSTRAINT "role_permissions_permission_id_fkey" FOREIGN KEY ("permission_id") REFERENCES "permissions"("id") ON DELETE CASCADE ON UPDATE NO ACTION;
|
|
231
|
+
|
|
232
|
+
-- AddForeignKey
|
|
233
|
+
ALTER TABLE "user_permissions" ADD CONSTRAINT "user_permissions_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION;
|
|
234
|
+
|
|
235
|
+
-- AddForeignKey
|
|
236
|
+
ALTER TABLE "user_permissions" ADD CONSTRAINT "user_permissions_permission_id_fkey" FOREIGN KEY ("permission_id") REFERENCES "permissions"("id") ON DELETE CASCADE ON UPDATE NO ACTION;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
# Please do not edit this file manually
|
|
2
|
-
# It should be added in your version-control system (e.g., Git)
|
|
3
|
-
provider = "postgresql"
|
|
1
|
+
# Please do not edit this file manually
|
|
2
|
+
# It should be added in your version-control system (e.g., Git)
|
|
3
|
+
provider = "postgresql"
|