[英]How to add 'new field' color based on 'existing field' percentage in array
[英]How to add a custom field to existing entity in MedusaJS
我想在 MedusaJS 服務器應用程序中向ProductCollection實體添加一個自定義字段(名為description )。 到目前為止我所遵循的是:
src/models
文件夾下新建文件myCollection.ts
,內容如下import { Column, Entity } from "typeorm";
import { ProductCollection } from "@medusajs/medusa";
@Entity()
export class MyProductCollection extends ProductCollection {
@Column({ type: "varchar" })
description: string | null;
}
npx typeorm migration:create -n DescriptionAdded --dir src/migrations
它在文件夾src/migrations
下為我提供了名為1674744755671-DescriptionAdded.ts
的新文件,我編輯了這樣的文件:import { MigrationInterface, QueryRunner, TableColumn } from "typeorm";
export class DescriptionAdded1674744755671 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.addColumn(
"product_collection",
new TableColumn({
name: "description",
type: "varchar",
isNullable: true,
})
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.dropColumn("product_collection", "description");
}
}
然后我使用此命令medusa migrations run
。 正如我所料,它在數據庫表中創建了字段。 然后我通過這個命令yarn run build
了 medusa 應用程序。 我用yarn run start
重新啟動了應用程序。 我正在使用最新的 medusajs 服務器應用程序和最新的 medusa package ,即1.7.5 。
我期望的是當我調用以下 api 時獲得此字段:
http://localhost:9000/store/collections
我使用以下命令創建了 medusajs 服務器應用程序:
yarn global add @medusajs/medusa-cli
medusa new my-medusa-store --seed
我在本地運行 medusa 服務器應用程序,它沒有提供名為description的新字段。
我找不到如何將自定義字段添加到美杜莎服務器應用程序。 在 medusajs 服務器應用程序中擴展現有實體的方式是什么? 我看過medusa-extender存儲庫,但它沒有顯示任何示例如何操作。
我希望你能幫助我。
謝謝
我已經使用 medusa/cli 安裝了 medusa 服務器應用程序並添加了上述文件。 我在medusajs網站上找不到任何關於此的文檔。
美杜莎的合著者在這里。
我們通常建議開發人員不要使用額外的列來擴展核心數據庫架構,因為這可能會損害設置的可維護性。 因此,我們不會公開執行此操作的本機方法。 雖然,我們計划在不久的將來添加一個自定義字段 API,這將有效地允許您擴展您的模式,但不是直接的。 它可能會按照 EAV 模式完成。
此外,您似乎可能將新實體與其他表列混淆了。 當您在/src/models
中添加模型時,您會向數據庫中添加新表- 而不是列。 在這里閱讀更多。
我沒有使用 Typeorm 的addColumn
功能的經驗,所以我不能說它如何影響您的設置。 我能說的是,我們在大多數GET /store/*
端點中查詢一組默認字段和實體關系。 如果您沒有明確提供您的附加字段,它們將不會成為響應的一部分。
關於擴展器,您確實可以使用它來擴展您的數據庫模式,但同樣,它伴隨着可能損害實例的可維護性和未來升級路徑的警告。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.