Öme*_*TAŞ 3 postgresql entity typescript typeorm 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;
}
Run Code Online (Sandbox Code Playgroud)
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");
}
}
Run Code Online (Sandbox Code Playgroud)
然后我使用此命令运行迁移medusa migrations run。正如我所料,它在数据库表中创建了该字段。然后我通过这个命令构建了 medusa 应用程序yarn run build。我用 重新启动了应用程序yarn run start。我正在使用最新的 medusajs 服务器应用程序和最新的 medusa 包,即1.7.5。
我期望的是当我调用以下 api 时获取该字段:
http://localhost:9000/store/collections
我使用以下命令创建了 medusajs 服务器应用程序:
yarn global add @medusajs/medusa-cli
medusa new my-medusa-store --seed
Run Code Online (Sandbox Code Playgroud)
我正在本地运行 medusa 服务器应用程序,它没有提供名为description的新字段。
我找不到如何将自定义字段添加到 medusa 服务器应用程序。扩展 medusajs 服务器应用程序中现有实体的方法是什么?我已经看到medusa-extender存储库,但它没有显示任何示例如何执行此操作。
我希望你能帮助我。
谢谢
我已经使用 medusa/cli 安装了 medusa 服务器应用程序并添加了上述文件。我在medusajs网站上找不到任何关于此的文档。
《美杜莎》的合著者在这里。
我们通常建议开发人员不要使用额外的列来扩展核心数据库架构,因为这可能会损害设置的可维护性。因此,我们不公开本地方法来执行此操作。不过,我们计划在不久的将来添加自定义字段 API,这将有效地允许您扩展架构,但不是直接扩展。它可能会按照 EAV 模式来完成。
另外,您似乎可能将新实体与附加表列混淆了。当您在 中添加模型时/src/models,您将新表添加到数据库中,而不是列。在这里阅读更多内容。
我没有使用 TypeormaddColumn功能的经验,所以我无法透露这会如何影响您的设置。我能说的是,我们查询大多数GET /store/*端点中实体的一组默认字段和关系。如果您没有明确提供附加字段,它们将不会成为响应的一部分。
关于扩展器,您确实可以使用它来扩展您的数据库模式,但同样,它也有一个警告,即可能会损害实例的可维护性和未来的升级路径。
| 归档时间: |
|
| 查看次数: |
2066 次 |
| 最近记录: |