From 30d89044f1f1b63b6b8c875cdcbb7747a1899360 Mon Sep 17 00:00:00 2001 From: Adrien de Peretti Date: Thu, 15 Jun 2023 19:42:49 +0200 Subject: [PATCH] fix(product): The bin scripts should include a shebang and import in the body (#4296) --- .changeset/giant-buttons-unite.md | 5 + integration-tests/api/package.json | 1 + integration-tests/plugins/package.json | 1 + integration-tests/repositories/package.json | 1 + packages/product/package.json | 12 +- .../src/scripts/bin/run-migration-down.ts | 3 +- .../src/scripts/bin/run-migration-up.ts | 3 +- packages/product/src/scripts/bin/run-seed.ts | 4 +- packages/product/src/scripts/migration-up.ts | 12 +- .../product/src/utils/create-connection.ts | 17 +- yarn.lock | 147 ++++++------------ 11 files changed, 82 insertions(+), 124 deletions(-) create mode 100644 .changeset/giant-buttons-unite.md diff --git a/.changeset/giant-buttons-unite.md b/.changeset/giant-buttons-unite.md new file mode 100644 index 0000000000..ca21f34329 --- /dev/null +++ b/.changeset/giant-buttons-unite.md @@ -0,0 +1,5 @@ +--- +"@medusajs/product": patch +--- + +fix(product): The bin scripts should include a shebang and import in the body diff --git a/integration-tests/api/package.json b/integration-tests/api/package.json index 48ae00088e..57609f62c3 100644 --- a/integration-tests/api/package.json +++ b/integration-tests/api/package.json @@ -14,6 +14,7 @@ "@medusajs/medusa": "workspace:*", "faker": "^5.5.3", "medusa-interfaces": "workspace:*", + "pg": "^8.11.0", "typeorm": "^0.3.16" }, "devDependencies": { diff --git a/integration-tests/plugins/package.json b/integration-tests/plugins/package.json index 8d663d64ca..434dfc5e9d 100644 --- a/integration-tests/plugins/package.json +++ b/integration-tests/plugins/package.json @@ -16,6 +16,7 @@ "medusa-fulfillment-webshipper": "workspace:*", "medusa-interfaces": "workspace:*", "medusa-plugin-sendgrid": "workspace:*", + "pg": "^8.11.0", "typeorm": "^0.3.16" }, "devDependencies": { diff --git a/integration-tests/repositories/package.json b/integration-tests/repositories/package.json index 0c2f195f01..770071d7d2 100644 --- a/integration-tests/repositories/package.json +++ b/integration-tests/repositories/package.json @@ -10,6 +10,7 @@ "dependencies": { "@medusajs/medusa": "workspace:*", "medusa-interfaces": "workspace:*", + "pg": "^8.11.0", "typeorm": "^0.3.16" }, "devDependencies": { diff --git a/packages/product/package.json b/packages/product/package.json index 4a75fcc802..c4830e15a0 100644 --- a/packages/product/package.json +++ b/packages/product/package.json @@ -36,8 +36,8 @@ "orm:cache:clear": " MIKRO_ORM_CLI=./mikro-orm.config.dev.ts mikro-orm cache:clear" }, "devDependencies": { - "@mikro-orm/cli": "5.7.4", - "@mikro-orm/migrations": "5.7.4", + "@mikro-orm/cli": "5.7.12", + "@mikro-orm/migrations": "5.7.12", "cross-env": "^5.2.1", "jest": "^25.5.4", "medusa-test-utils": "^1.1.40", @@ -50,11 +50,11 @@ }, "dependencies": { "@medusajs/modules-sdk": "^1.8.3", - "@medusajs/types": "*", + "@medusajs/types": "^1.8.7", "@medusajs/utils": "^1.8.2", - "@mikro-orm/core": "5.7.4", - "@mikro-orm/migrations": "5.7.4", - "@mikro-orm/postgresql": "5.7.4", + "@mikro-orm/core": "5.7.12", + "@mikro-orm/migrations": "5.7.12", + "@mikro-orm/postgresql": "5.7.12", "awilix": "^8.0.0", "dotenv": "^16.1.4", "lodash": "^4.17.21" diff --git a/packages/product/src/scripts/bin/run-migration-down.ts b/packages/product/src/scripts/bin/run-migration-down.ts index 4bc0980ca5..e352048fd4 100644 --- a/packages/product/src/scripts/bin/run-migration-down.ts +++ b/packages/product/src/scripts/bin/run-migration-down.ts @@ -1,6 +1,7 @@ -import { revertMigration } from "../migration-down" +#!/usr/bin/env node export default (async () => { + const { revertMigration } = await import("../migration-down") const { config } = await import("dotenv") config() await revertMigration() diff --git a/packages/product/src/scripts/bin/run-migration-up.ts b/packages/product/src/scripts/bin/run-migration-up.ts index f2a64b8863..35f3bee853 100644 --- a/packages/product/src/scripts/bin/run-migration-up.ts +++ b/packages/product/src/scripts/bin/run-migration-up.ts @@ -1,6 +1,7 @@ -import { runMigrations } from "../migration-up" +#!/usr/bin/env node export default (async () => { + const { runMigrations } = await import("../migration-up") const { config } = await import("dotenv") config() await runMigrations() diff --git a/packages/product/src/scripts/bin/run-seed.ts b/packages/product/src/scripts/bin/run-seed.ts index 4fd877533f..0b4a242d6f 100644 --- a/packages/product/src/scripts/bin/run-seed.ts +++ b/packages/product/src/scripts/bin/run-seed.ts @@ -1,3 +1,5 @@ +#!/usr/bin/env node + import { run } from "../seed" import { EOL } from "os" @@ -9,7 +11,7 @@ export default (async () => { config() if (!path) { throw new Error( - `filePath is required.${EOL}Example: node_modules/@medusajs/product/dist/scripts/bin/run-seed.js ` + `filePath is required.${EOL}Example: medusa-product-seed ` ) } diff --git a/packages/product/src/scripts/migration-up.ts b/packages/product/src/scripts/migration-up.ts index 88cb1b2eba..e0139040a9 100644 --- a/packages/product/src/scripts/migration-up.ts +++ b/packages/product/src/scripts/migration-up.ts @@ -33,11 +33,17 @@ export async function runMigrations({ try { const migrator = orm.getMigrator() - await migrator.up() - logger?.info("Product module migration executed") + const pendingMigrations = await migrator.getPendingMigrations() + logger.info("Running pending migrations:", pendingMigrations) + + await migrator.up({ + migrations: pendingMigrations.map((m) => m.name), + }) + + logger.info("Product module migration executed") } catch (error) { - logger?.error(`Product module migration failed to run - Error: ${error}`) + logger.error(`Product module migration failed to run - Error: ${error}`) } await orm.close() diff --git a/packages/product/src/utils/create-connection.ts b/packages/product/src/utils/create-connection.ts index 3ebe2f31b9..36c346c2a4 100644 --- a/packages/product/src/utils/create-connection.ts +++ b/packages/product/src/utils/create-connection.ts @@ -1,35 +1,26 @@ -import { resolve } from "path" import { MikroORM, PostgreSqlDriver } from "@mikro-orm/postgresql" import { ProductServiceInitializeOptions } from "../types" -import { TSMigrationGenerator } from "@mikro-orm/migrations" +import { Utils } from "@mikro-orm/core" export async function createConnection( database: ProductServiceInitializeOptions["database"], entities: any[] ) { + const schema = database.schema || "public" const orm = await MikroORM.init({ discovery: { disableDynamicFileAccess: true }, entities, debug: process.env.NODE_ENV === "development", baseDir: process.cwd(), clientUrl: database.clientUrl, - schema: database.schema ?? "public", + schema, driverOptions: database.driverOptions ?? { connection: { ssl: true }, }, tsNode: process.env.APP_ENV === "development", type: "postgresql", migrations: { - path: resolve(__dirname, "../../dist/migrations"), - pathTs: resolve(__dirname, "../../src/migrations"), - glob: "!(*.d).{js,ts}", - disableForeignKeys: false, - silent: false, - dropTables: false, - transactional: true, - allOrNothing: true, - safe: true, - generator: TSMigrationGenerator, + path: Utils.detectTsNode() ? "src/migrations" : "dist/migrations", }, }) diff --git a/yarn.lock b/yarn.lock index 5984295015..feb1aa1308 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6481,12 +6481,12 @@ __metadata: resolution: "@medusajs/product@workspace:packages/product" dependencies: "@medusajs/modules-sdk": ^1.8.3 - "@medusajs/types": "*" + "@medusajs/types": ^1.8.7 "@medusajs/utils": ^1.8.2 - "@mikro-orm/cli": 5.7.4 - "@mikro-orm/core": 5.7.4 - "@mikro-orm/migrations": 5.7.4 - "@mikro-orm/postgresql": 5.7.4 + "@mikro-orm/cli": 5.7.12 + "@mikro-orm/core": 5.7.12 + "@mikro-orm/migrations": 5.7.12 + "@mikro-orm/postgresql": 5.7.12 awilix: ^8.0.0 cross-env: ^5.2.1 dotenv: ^16.1.4 @@ -6522,7 +6522,7 @@ __metadata: languageName: unknown linkType: soft -"@medusajs/types@*, @medusajs/types@^1.8.7, @medusajs/types@workspace:^, @medusajs/types@workspace:packages/types": +"@medusajs/types@^1.8.7, @medusajs/types@workspace:^, @medusajs/types@workspace:packages/types": version: 0.0.0-use.local resolution: "@medusajs/types@workspace:packages/types" dependencies: @@ -6559,13 +6559,13 @@ __metadata: languageName: node linkType: hard -"@mikro-orm/cli@npm:5.7.4": - version: 5.7.4 - resolution: "@mikro-orm/cli@npm:5.7.4" +"@mikro-orm/cli@npm:5.7.12": + version: 5.7.12 + resolution: "@mikro-orm/cli@npm:5.7.12" dependencies: "@jercle/yargonaut": 1.1.5 - "@mikro-orm/core": ~5.7.4 - "@mikro-orm/knex": ~5.7.4 + "@mikro-orm/core": ~5.7.12 + "@mikro-orm/knex": ~5.7.12 fs-extra: 11.1.1 tsconfig-paths: 4.2.0 yargs: 17.7.2 @@ -6604,20 +6604,20 @@ __metadata: bin: mikro-orm: cli.js mikro-orm-esm: esm.js - checksum: f5d48acf7255dde32a0ef9511788cb597e44247d017721fdad5d728cbbcd7c6ae783fa6c494d356a6bb22eb79d6c769d4e6663e3547d3777c7adf2fa62031d0b + checksum: dba36b1202a127132c325694348b5f5a44a35c4ac59eefb89367712d3026c5453fb9dd356c0d43884a736f404bf7a8ebda6383d85a7023204035740d8ecc21e0 languageName: node linkType: hard -"@mikro-orm/core@npm:5.7.4": - version: 5.7.4 - resolution: "@mikro-orm/core@npm:5.7.4" +"@mikro-orm/core@npm:5.7.12, @mikro-orm/core@npm:~5.7.12": + version: 5.7.12 + resolution: "@mikro-orm/core@npm:5.7.12" dependencies: acorn-loose: 8.3.0 acorn-walk: 8.2.0 - dotenv: 16.0.3 + dotenv: 16.1.4 fs-extra: 11.1.1 globby: 11.1.0 - mikro-orm: ~5.7.4 + mikro-orm: ~5.7.12 reflect-metadata: 0.1.13 peerDependencies: "@mikro-orm/better-sqlite": ^5.0.0 @@ -6651,60 +6651,13 @@ __metadata: optional: true "@mikro-orm/sqlite": optional: true - checksum: e1d5b3bf71a83c4ab8cf82caa944899a39738f59624ea6bb4a136fef3c3c7056f424bbc165a22adb6278dd6f8eb23d12c30553803fbe3e501b852b26d41cd2f2 + checksum: 1458e1bf069870dbf6d2a110a5c80537401e18415a491967d6ae77b9b195ed50c5e829c3409f7839163dd4bfc1b833c8f0de0466a50a798f2ddd64df5e6296fa languageName: node linkType: hard -"@mikro-orm/core@npm:~5.7.4": - version: 5.7.11 - resolution: "@mikro-orm/core@npm:5.7.11" - dependencies: - acorn-loose: 8.3.0 - acorn-walk: 8.2.0 - dotenv: 16.1.3 - fs-extra: 11.1.1 - globby: 11.1.0 - mikro-orm: ~5.7.11 - reflect-metadata: 0.1.13 - peerDependencies: - "@mikro-orm/better-sqlite": ^5.0.0 - "@mikro-orm/entity-generator": ^5.0.0 - "@mikro-orm/mariadb": ^5.0.0 - "@mikro-orm/migrations": ^5.0.0 - "@mikro-orm/migrations-mongodb": ^5.0.0 - "@mikro-orm/mongodb": ^5.0.0 - "@mikro-orm/mysql": ^5.0.0 - "@mikro-orm/postgresql": ^5.0.0 - "@mikro-orm/seeder": ^5.0.0 - "@mikro-orm/sqlite": ^5.0.0 - peerDependenciesMeta: - "@mikro-orm/better-sqlite": - optional: true - "@mikro-orm/entity-generator": - optional: true - "@mikro-orm/mariadb": - optional: true - "@mikro-orm/migrations": - optional: true - "@mikro-orm/migrations-mongodb": - optional: true - "@mikro-orm/mongodb": - optional: true - "@mikro-orm/mysql": - optional: true - "@mikro-orm/postgresql": - optional: true - "@mikro-orm/seeder": - optional: true - "@mikro-orm/sqlite": - optional: true - checksum: d51836a4bd24f64a28a52d0b5fb94f23d9d8f50352b818cfb91b92c256794b9d6f421a4652ff341ee072082bf0680b9daeb929ebbc274dafd94e5159c476d6f2 - languageName: node - linkType: hard - -"@mikro-orm/knex@npm:~5.7.4": - version: 5.7.11 - resolution: "@mikro-orm/knex@npm:5.7.11" +"@mikro-orm/knex@npm:~5.7.12": + version: 5.7.12 + resolution: "@mikro-orm/knex@npm:5.7.12" dependencies: fs-extra: 11.1.1 knex: 2.4.2 @@ -6736,30 +6689,30 @@ __metadata: optional: true sqlite3: optional: true - checksum: 946296a3f2fc5ae9f51875789574e23546696f9c34f0ef0584027e0cc3254b82568754a7c86387c1a3f0beb34ada89ca0e60f72e98bbbdc2c48dddc7aa909428 + checksum: f8b334ce7d776303cebbfd3cf1181daa5b797bd287e94b54d0151866b24c18ac2a7c68a850ed27a26565a850d2e62cd4478af601deb6e24f83ec5db4a556d11b languageName: node linkType: hard -"@mikro-orm/migrations@npm:5.7.4": - version: 5.7.4 - resolution: "@mikro-orm/migrations@npm:5.7.4" +"@mikro-orm/migrations@npm:5.7.12": + version: 5.7.12 + resolution: "@mikro-orm/migrations@npm:5.7.12" dependencies: - "@mikro-orm/knex": ~5.7.4 + "@mikro-orm/knex": ~5.7.12 fs-extra: 11.1.1 knex: 2.4.2 umzug: 3.2.1 peerDependencies: "@mikro-orm/core": ^5.0.0 - checksum: d87c031760209a4f2bda67a0d884d18714e6ada88eba906dd2f11936530745bcc82912765cad458fa58499934c2c14845aa6eeaf6afdeebd43910a2876162325 + checksum: 93513f15f46f8f612fb90762712e24aa8d877bc6b59bfa903221f42e85140fcc724cb519bf74fa8be2acd40819525684acbc0d4b44a8579f1c84457f6962523b languageName: node linkType: hard -"@mikro-orm/postgresql@npm:5.7.4": - version: 5.7.4 - resolution: "@mikro-orm/postgresql@npm:5.7.4" +"@mikro-orm/postgresql@npm:5.7.12": + version: 5.7.12 + resolution: "@mikro-orm/postgresql@npm:5.7.12" dependencies: - "@mikro-orm/knex": ~5.7.4 - pg: 8.10.0 + "@mikro-orm/knex": ~5.7.12 + pg: 8.11.0 peerDependencies: "@mikro-orm/core": ^5.0.0 "@mikro-orm/entity-generator": ^5.0.0 @@ -6772,7 +6725,7 @@ __metadata: optional: true "@mikro-orm/seeder": optional: true - checksum: 07bc1984b0d8e4799b7e4c3c4e6c04cbeac47e235dc9e56e8f5c3bd6e5a4a71a059b6961fc3a0c285c703a3184d8440bdd4aacdbbc1f7b22f3a82dca145a7e56 + checksum: b6aecd3eb9013720e242390f9a4b470ff45f222ccddfeb8b260a9c0682073dbe9b6cfb9f688b7fde19197748a9026073d0693d66a7a0b2de2c83abfbd1fec291 languageName: node linkType: hard @@ -19341,27 +19294,20 @@ __metadata: languageName: node linkType: hard -"dotenv@npm:16.0.3, dotenv@npm:^16.0.3": - version: 16.0.3 - resolution: "dotenv@npm:16.0.3" - checksum: 109457ac5f9e930ca8066ea33887b6f839ab24d647a7a8b49ddcd1f32662e2c35591c5e5b9819063e430148a664d0927f0cbe60cf9575d89bc524f47ff7e78f0 - languageName: node - linkType: hard - -"dotenv@npm:16.1.3": - version: 16.1.3 - resolution: "dotenv@npm:16.1.3" - checksum: d80483222c5f129c6e5bc4ce46be563497eb39a7aa034245408e570f09fa770d73da3e019454394c197593535ecb908b0f5699ce721f5313ffd06ee44bcab85f - languageName: node - linkType: hard - -"dotenv@npm:^16.1.4": +"dotenv@npm:16.1.4, dotenv@npm:^16.1.4": version: 16.1.4 resolution: "dotenv@npm:16.1.4" checksum: 47cf5ce136bf2a5e8402fc9855d95848973cfee423fe0adf1a7cd565c842c51e5b8c95889b075140c26b092b74dd2a319970ff496cd7159ab3f1fc58edfc0ede languageName: node linkType: hard +"dotenv@npm:^16.0.3": + version: 16.0.3 + resolution: "dotenv@npm:16.0.3" + checksum: 109457ac5f9e930ca8066ea33887b6f839ab24d647a7a8b49ddcd1f32662e2c35591c5e5b9819063e430148a664d0927f0cbe60cf9575d89bc524f47ff7e78f0 + languageName: node + linkType: hard + "dotenv@npm:^7.0.0": version: 7.0.0 resolution: "dotenv@npm:7.0.0" @@ -24999,6 +24945,7 @@ __metadata: jest: ^26.6.3 jest-environment-node: 26.6.2 medusa-interfaces: "workspace:*" + pg: ^8.11.0 typeorm: ^0.3.16 languageName: unknown linkType: soft @@ -25020,6 +24967,7 @@ __metadata: medusa-fulfillment-webshipper: "workspace:*" medusa-interfaces: "workspace:*" medusa-plugin-sendgrid: "workspace:*" + pg: ^8.11.0 typeorm: ^0.3.16 languageName: unknown linkType: soft @@ -25036,6 +24984,7 @@ __metadata: jest: ^26.6.3 jest-environment-node: 26.6.2 medusa-interfaces: "workspace:*" + pg: ^8.11.0 typeorm: ^0.3.16 languageName: unknown linkType: soft @@ -31480,10 +31429,10 @@ __metadata: languageName: node linkType: hard -"mikro-orm@npm:~5.7.11, mikro-orm@npm:~5.7.4": - version: 5.7.11 - resolution: "mikro-orm@npm:5.7.11" - checksum: 32bbd2366d0c56ec4592a8131c1e28ae578b33dfc2501bc2646f51fab8181c6a795fe81fae798d22a2791fd5600b414e527bcb35208b786e7a0d9ae3558b4ccd +"mikro-orm@npm:~5.7.12": + version: 5.7.12 + resolution: "mikro-orm@npm:5.7.12" + checksum: 6b71e7b9803b7cbd934c6830df7fc010201ef48a9efaebbce98f3613896114cd464bf5a1d0746b42b14aea92e29a593f75775482d64e4cf856ffdbe341379edf languageName: node linkType: hard