Medusa-extender 사용자 지정 엔터티
7893 단어 beginnersjavascriptwebdev
이를 통해 마침내 일부 사용자 지정 엔터티를 시험해 볼 수 있습니다.
이 특정 문서에서는 medusa-extender로 수행되는 방법을 살펴보겠습니다.
게시물 모듈 생성
medusa-extender의 모든 새 구성 요소는 기술적으로 모듈이므로 다음 명령을 사용하여
post
모듈을 생성하여 시작하겠습니다../node_modules/.bin/medex g -m post
다음에 엔터티가 필요하며 이를 위해 다음 명령을 사용할 수 있습니다.
./node_modules/.bin/medex g -e post
마지막으로 마이그레이션이 필요합니다.
./node_modules/.bin/medex g -mi post
이들은 이 문서에 필요한 세 가지 명령이며 프로젝트에서 다음 구조를 생성해야 합니다.
모듈의 경우 아무것도 변경할 필요가 없습니다. 그러나 이를 사용하려면
main.ts
파일에 로그인해야 합니다.import { PostModule } from './modules/post/post.module';
await new Medusa(resolve(__dirname, '..'), expressInstance).load([PostModule]);
엔터티의 경우 파일을 열고 다음 코드를 안에 넣습니다.
import { Column, Entity } from 'typeorm';
import { Entity as MedusaEntity } from 'medusa-extender';
@MedusaEntity()
@Entity()
export class Post {
@Column()
name: string;
}
기본적으로 medusa-extender는 ID 및 날짜 개체와 같은 기본 엔터티 속성을 관리합니다.
여기에 이름 열을 추가합니다.
이제 데이터베이스를 업데이트하는 데 사용할 마이그레이션 파일로 이동할 수 있습니다.
일부 기술적인 제약으로 인해 이 글을 쓰는 시점에 직접 작성해야 합니다.
import {MigrationInterface, QueryRunner} from 'typeorm';
import {Migration} from 'medusa-extender';
@Migration()
export class PostMigration1663651032643 implements MigrationInterface {
name = 'PostMigration1663651032643';
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`CREATE TABLE IF NOT EXISTS "post" (
"id" character varying NOT NULL,
"name" character varying NOT NULL,
"created_at" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
"updated_at" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now()
)`
)
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.dropTable("post", true)
}
}
여기에서 함께 제공되어야 하는 모든 열과 함께
up
명령에서 테이블 기둥을 생성합니다.그리고
down
명령에서 삭제합니다. 이 부분은 쿼리가 실패하거나 사용자가 마이그레이션을 되돌리는 경우에 필요합니다.마지막 부분은 Extender에 대한 마이그레이션을 활성화하는 것입니다.
medusa-config.js
파일을 열고 다음 줄을 추가합니다.module.exports = {
projectConfig: {
cli_migration_dirs: ['dist/**/*.migration.js'],
},
};
이제 docker 서버 인스턴스를 열고 다음 명령을 실행할 수 있습니다.
// First, build everything:
npm run build
// Then run the migrations
./node_modules/.bin/medex m -r
그리고 그게 다야!
데이터베이스를 열면 포스트 테이블을 볼 수 있습니다.
읽어주셔서 감사합니다. 연결해 봅시다!
제 블로그를 읽어주셔서 감사합니다. 내 이메일 뉴스레터를 구독하고 Facebook에 연결하거나
Reference
이 문제에 관하여(Medusa-extender 사용자 지정 엔터티), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dailydevtips1/medusa-extender-custom-entity-4iio텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)