Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: ORM Fails to Discover Core Entity "ProductCollection" in Custom Module #11157

Closed
tolgaand opened this issue Jan 25, 2025 · 1 comment
Closed

Comments

@tolgaand
Copy link

tolgaand commented Jan 25, 2025

Package.json file

{
  "name": "my-medusa-store",
  "version": "0.0.1",
  "description": "A starter for Medusa projects.",
  "author": "Medusa (https://medusajs.com)",
  "license": "MIT",
  "keywords": [
    "sqlite",
    "postgres",
    "typescript",
    "ecommerce",
    "headless",
    "medusa"
  ],
  "scripts": {
    "build": "medusa build",
    "seed": "medusa exec ./src/scripts/seed.ts",
    "start": "medusa start",
    "dev": "medusa develop",
    "test:integration:http": "TEST_TYPE=integration:http NODE_OPTIONS=--experimental-vm-modules jest --silent=false --runInBand --forceExit",
    "test:integration:modules": "TEST_TYPE=integration:modules NODE_OPTIONS=--experimental-vm-modules jest --silent --runInBand --forceExit",
    "test:unit": "TEST_TYPE=unit NODE_OPTIONS=--experimental-vm-modules jest --silent --runInBand --forceExit"
  },
  "dependencies": {
    "@medusajs/admin-sdk": "2.3.1",
    "@medusajs/cli": "2.3.1",
    "@medusajs/framework": "2.3.1",
    "@medusajs/medusa": "2.3.1",
    "@mikro-orm/core": "5.9.7",
    "@mikro-orm/knex": "5.9.7",
    "@mikro-orm/migrations": "5.9.7",
    "@mikro-orm/postgresql": "5.9.7",
    "awilix": "^8.0.1",
    "pg": "^8.13.0"
  },
  "devDependencies": {
    "@medusajs/test-utils": "2.3.1",
    "@mikro-orm/cli": "5.9.7",
    "@swc/core": "1.5.7",
    "@swc/jest": "^0.2.36",
    "@types/jest": "^29.5.13",
    "@types/node": "^20.0.0",
    "@types/react": "^18.3.2",
    "@types/react-dom": "^18.2.25",
    "jest": "^29.7.0",
    "prop-types": "^15.8.1",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "ts-node": "^10.9.2",
    "typescript": "^5.6.2",
    "vite": "^5.2.11",
    "yalc": "^1.0.0-pre.53"
  },
  "engines": {
    "node": ">=20"
  }
}

Node.js version

v22.12.0

Database and its version

PostgreSQL 15.10

Operating system name and version

Windows 10 Pro

Browser name

No response

What happended?

When trying to create a relationship with core entity ProductCollection in a custom module (collection_image), the ORM throws a discovery error during migration generation:

error: Entity 'ProductCollection' was not discovered... (used in CollectionImage.product_collection_id)
// src/modules/collection-image/models/collection-image.ts
import { model } from "@medusajs/framework/utils";
import ProductCollection from "@medusajs/product/dist/models/product-collection";

const CollectionImage = model.define("collection_image", {
  product_collection: model.belongsTo(() => ProductCollection), // ❌ Error here
});

Expected behavior

Core entities like ProductCollection should be discoverable by the ORM when imported correctly, allowing relationships in custom modules.

Actual behavior

ORM fails to recognize ProductCollection even with direct import from @medusajs/product/dist/models, indicating a module discovery issue.

Link to reproduction repo

https://github.com/tolgaand/isanore-shop

@olivermrbl
Copy link
Contributor

You cannot create a DB relationship between models from two different modules. Here, you would need to use our Linking API to associate the image with the existing Product Collection: https://docs.medusajs.com/learn/fundamentals/module-links

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants