From 487ef5f15b88584600eaede6cf84b329181f7e05 Mon Sep 17 00:00:00 2001 From: okjodom Date: Fri, 8 Nov 2024 17:52:51 +0300 Subject: [PATCH] chore: clean traces of prisma and migrations --- apps/swap/package.json | 17 ---------------- bun.lockb | Bin 323433 -> 320519 bytes docs/contributing.md | 12 ----------- package.json | 5 +---- scripts/migrate.ts | 44 ----------------------------------------- 5 files changed, 1 insertion(+), 77 deletions(-) delete mode 100644 apps/swap/package.json delete mode 100644 scripts/migrate.ts diff --git a/apps/swap/package.json b/apps/swap/package.json deleted file mode 100644 index 16bd4a6..0000000 --- a/apps/swap/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "@bitsacco/swap", - "version": "1.0.0", - "description": "", - "main": "main.js", - "author": "", - "private": true, - "license": "MIT", - "scripts": { - "prisma:gen": "bun run prisma generate", - "migrate:dev": "dotenv -e .env.local -- bun prisma migrate dev", - "migrate:reset": "dotenv -e .env.local -- bun prisma migrate reset" - }, - "devDependencies": { - "dotenv-cli": "^7.4.2" - } -} diff --git a/bun.lockb b/bun.lockb index d6408265263607e3be6a0b1ce09e3be380362195..53e0ff5d8033fa3c48a4fc775e27c143131be09b 100755 GIT binary patch delta 61855 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 delta 63884 zcmeFadz?+>-~Yd7voni?gqe|$h?tzsFzj(G=ksyoFxVK3VaDW8%&6p0Dy?)erBVr% zBnd@QDUwR1n5Yy*MF~YEzvpYMYs=?zcYp5t_kDc-`aaqZul>H>&+A&(d0p#Td(U2G zZ!dfF^Ro9{Uu)N#4v#hYu-@m@U$3y`gOo8dzqotfzQc*ZTlYO%Bjb;yU#{JEyl6nL znhW|>&Wo*F#B=<&5`jSeq@2VF*;$jaY7%h;zJtBo@~p_DKv9lXx-QmMB)%m6(?LId zmrx+!;7=Yq#mh8}ccmYBNg!}3_E#I9o0~BrP>0B)fXj&Z%-Wnt=FO4pK;RwxGVqtM zs>pJ;YD|TgC2rH0$~{`ZO2ZalmFfKAexU_aLVVP?tYIp>FD1+GgjFS4^QOwx;Gk02 zc~}n3ztvqClbW}YYN)A?V%4O6B=L^Ms+6heKupN&=P?zP9?5^Zga*NPJPnh|>4S=r4l(j>1+)j*&U=|flh%}B$>V|@8wmuC;A_~% z(_r;~#`v5`Or^jOd=2A)T7G<2e5GrQjSt)u$ggP+s8!pqSrx2CAU$X5_~Fz%fq3Rz zehI8HdYGP6h341sdD%q2=Z|C6kiUA){jKO#9f#KSlZ{T#NgO#YeN-QO4N%Q`emy5+ zb=X5>r|ie%Bu-7w92ZE>9yK97J0~&~u8z*A;|>co$@{jUfA|5c4$I8Qj3ka278r%E zW@nBak&(?rOtb#P#(ui!Y_7y8sx^PjYCk^*?iG`ho}HaOHE@pO)XI@qRd-l!&akYh zfxJMiWIv)S1t>ve%7pAlPENoy^(Xe7SoQDCSPk@OtO|^F*Fbz#v>R5(=S0SP6S9r< z%VAYuB$7BXBRgkOaqGX*Tc4`@$vRWydX zx#K5fOkjT0wtf|x-=Cb5I_&wDeg_q4h@Q+rZje+WOt`6P6VrKLe|2J1Wbs^?rQy_i3uDah!OAmrup~(S9I5Gcsv( z)`*-y`taeA36pXHX*arG6>E~0(!sCKJs!_zku@nY{$|cQxYmQ{tR5Sg3JnB` zb@HdzVB*!D^eGuxIq*N>8m6DH%I{mO+Owy#pZ>ZoKKIUsu^Fz3EtA)xt6%r#Y}ldiXYyGdz7<`iRKzaT&Q8iTlj3z}`3bO-&lL0^B=(9-6#6#_Tej^ZCJH@BUbtRMul|z32UPbT7;jcu^mabD8aDo^x+Z02atHR zN&b|{#VVdTIVQq>$$O)B7Uuc|)S>6q!d$EhoG^A&BA151$c*tL5_2a6k|+D|iPla? z9G5jbeNqIQmyww zm&M-2@v3usZ#=&G9R?605W67b;K{8{J_B+qOUKTt{3o8@x05%SL8&;>&n|AD?o0;rL`tV7K898l< zS6A1?s%uw1;P=P`d)#Hr0WHjn7y9|!gVo%Mc74vc^qkS^s~#Mnv8>IckZo`L9yw&( zj-{^3Yq8j$Q)!F*5$J(cdAmraxjC@FPyPzN>bn}NsS~|rNy1k>-hRk0f0MPlX_rRu zk%#@`{Pif1f5x6{!!r^y#*fU(3%Ddu#fN#T5)=Iqze4Hbr)H*48a{dfzA~E3)Y7_D z;Zb|GW=*pgZx zFDIZDO-P?KI+2TfF?>~M^5~4=EUtl!91g|a@wnfC{hshg<{TO8Y&?Zkk7bRIOkxWe zU>}(=JaOdsbM%0E=KUxA0+--xM8CjlAkHmgCNPaIboF-to#vV8W7&viWbeaQ20O4i zIrc2~EBXq)dgM8*GF-mGuSjGHYYngUwxH-xj?--&d;wey&9t`5(@ap+Ji;QyWnt

o_uzRHik0$&xp_Bp@csW$&t@zt=^ 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 diff --git a/docs/contributing.md b/docs/contributing.md index a7a600f..4dd8ee4 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -72,15 +72,3 @@ $ bun proto:gen ``` Resulting typescript files are generated in the `/libs/common/src/types/proto` folder. You might need to manually update the index file in the types folder to include the new files. - -## Working with Prisma - -We use [Prisma](https://prisma.io/) as the ORM for our database. -Each service that uses prisma has a `prisma.schema` file in its corresponding `/src//prisma` folder. -At present, we manually need to gnerate and commit the prisma client whenever the schema is changed. -To do this, run the following command from within the service directory: - -```bash -# generate prisma client -$ bun prisma:gen -``` diff --git a/package.json b/package.json index 5ef65ea..d0cabcc 100644 --- a/package.json +++ b/package.json @@ -21,8 +21,7 @@ "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", "test:e2e": "bun test apps/api/test/ --config ./apps/api/test/jest-e2e.json", "proto:gen": "protoc --plugin=./node_modules/.bin/protoc-gen-ts_proto --ts_proto_out=./libs/common/src/types/proto --ts_proto_opt=nestJs=true -I ./proto ./proto/*.proto", - "proto:clean": "rm ./libs/common/src/types/proto/*.ts", - "migrate": "bun ./scripts/migrate.ts" + "proto:clean": "rm ./libs/common/src/types/proto/*.ts" }, "dependencies": { "@grpc/grpc-js": "^1.12.2", @@ -39,7 +38,6 @@ "@nestjs/platform-express": "^10.0.0", "@nestjs/sequelize": "^10.0.1", "@nestjs/swagger": "^7.4.2", - "@prisma/client": "^5.21.1", "cache-manager": "4.1.0", "cache-manager-redis-store": "^3.0.1", "class-transformer": "^0.5.1", @@ -52,7 +50,6 @@ "nestjs-pino": "^4.1.0", "pino-http": "^10.3.0", "pino-pretty": "^11.3.0", - "prisma": "^5.21.1", "redis": "^4.7.0", "reflect-metadata": "^0.2.0", "rxjs": "^7.8.1", diff --git a/scripts/migrate.ts b/scripts/migrate.ts deleted file mode 100644 index d395914..0000000 --- a/scripts/migrate.ts +++ /dev/null @@ -1,44 +0,0 @@ -/** - * This script runs migrations for all packages that have a `migrate` script in their `package.json`. - * As a prerequisite, the script installs the dependencies of each package. - */ -import { execSync } from 'child_process'; -import fs from 'fs'; -import path from 'path'; - -function findPackagesWithMigrations(dir: string): string[] { - const packages: string[] = []; - const items = fs.readdirSync(dir); - - for (const item of items) { - const fullPath = path.join(dir, item); - if (fs.statSync(fullPath).isDirectory()) { - const packageJsonPath = path.join(fullPath, 'package.json'); - if (fs.existsSync(packageJsonPath)) { - const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); - if (packageJson.scripts && packageJson.scripts["migrate:dev"]) { - packages.push(fullPath); - } - } - // Recursively search in subdirectories - packages.push(...findPackagesWithMigrations(fullPath)); - } - } - - return packages; -} - -function runMigrations(): void { - const packagesWithMigrations = findPackagesWithMigrations('.'); - - for (const packagePath of packagesWithMigrations) { - try { - execSync('bun install', { cwd: packagePath, stdio: 'inherit' }); - execSync('bun run migrate:dev', { cwd: packagePath, stdio: 'inherit' }); - } catch (error) { - console.error(`Error running migrations for ${packagePath}:`, error); - } - } -} - -runMigrations();