Cara menggunakan micro-orm/postgresql

Saya telah memodifikasi konstruktor entitas contoh (walaupun masalah yang sama dihasilkan dari penggunaan format yang disediakan dalam dokumen mikro-orm)

Saat ini, saya memiliki file Posts.ts dengan

import { Entity, PrimaryKey, Property } from "@mikro-orm/core";
// import { v4 } from 'uuid';

@Entity()
export class Post {
  @PrimaryKey()
  id!: number;
  // uuid: string = v4();

  // @SerializedPrimaryKey()
  // id!: string;

  @Property({ type: "date" })
  createdAt: Date = new Date();

  @Property({ type: "date", onUpdate: () => new Date() })
  updatedAt: Date = new Date();

  @Property({ type: "text" })
  title!: string;
}

Kode berjalan dengan

const main = async () => {
  const orm = await MikroORM.init(config);
  await orm.getMigrator().up();
  const post = orm.em.create(Post, {title: "first title"});
  await orm.em.persistAndFlush(post);
};

main().catch((err) => {
    console.log(err);
});
_

Pesan kesalahan mengatakan

NotNullConstraintViolationException. masukkan ke dalam nilai "post" ("created_at", "title", "updated_at") ('2021-08-18T22. 13. 54. 599Z', 'judul pertama', '2021-08-18T22. 13. 54. 599Z') mengembalikan "id" - nilai null di kolom "_id" dari relasi "post" melanggar batasan not-null di PostgreSqlExceptionConverter. convertException

Saya tidak tahu apa artinya atau bagaimana menyetel angka pada kolom id. Saya perhatikan dokumen mikro-orm menentukan kunci utama dengan awalan garis bawah (juga tidak yakin apa yang dilakukan garis bawah) dan juga menentukannya sebagai ObjectId dan kemudian menggunakan kunci utama berseri. Saya telah mencoba menggunakan format ini dan mendapatkan kesalahan yang sama

Saya juga mencoba

  1. menambahkan

    const main = async () => {
      const orm = await MikroORM.init(config);
      await orm.getMigrator().up();
      const post = orm.em.create(Post, {title: "first title"});
      await orm.em.persistAndFlush(post);
    };
    
    main().catch((err) => {
        console.log(err);
    });
    
    _0 sebagai kunci utama (bukan id) - ditampilkan dalam kode komentar di atas, tetapi saya mendapatkan kesalahan yang sama

  2. menambahkan nomor sebagai id di

    const main = async () => {
      const orm = await MikroORM.init(config);
      await orm.getMigrator().up();
      const post = orm.em.create(Post, {title: "first title"});
      await orm.em.persistAndFlush(post);
    };
    
    main().catch((err) => {
        console.log(err);
    });
    
    _2 const

    const post = orm.em.create(Post, {title: "first title", id: 2});
    
    _

Ini juga menghasilkan NotNullConstraintViolationException. kesalahan mengatakan bahwa id adalah nol

  1. salah satu saran dari posting ini adalah menambahkan yang berikut ke

    const main = async () => {
      const orm = await MikroORM.init(config);
      await orm.getMigrator().up();
      const post = orm.em.create(Post, {title: "first title"});
      await orm.em.persistAndFlush(post);
    };
    
    main().catch((err) => {
        console.log(err);
    });
    
    4

    const generator = orm.getSchemaGenerator();
    await generator.updateSchema();
    
    _

Saya mencoba ini dan ketika saya menjalankan

const main = async () => {
  const orm = await MikroORM.init(config);
  await orm.getMigrator().up();
  const post = orm.em.create(Post, {title: "first title"});
  await orm.em.persistAndFlush(post);
};

main().catch((err) => {
    console.log(err);
});
5, terminal hanya hang pada perintah start (tidak ada kesalahan yang ditampilkan di lingkungan tontonan)

yarn run v1.22.11
$ nodemon dist/index.js
[nodemon] 2.0.12
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node dist/index.js`
_
  1. Saya menghapus dua baris baru itu dan mencoba lagi, kali ini dengan bendera awal pada perintah
    const main = async () => {
      const orm = await MikroORM.init(config);
      await orm.getMigrator().up();
      const post = orm.em.create(Post, {title: "first title"});
      await orm.em.persistAndFlush(post);
    };
    
    main().catch((err) => {
        console.log(err);
    });
    
    6 (setelah menghapus folder modul simpul saya, folder
    const main = async () => {
      const orm = await MikroORM.init(config);
      await orm.getMigrator().up();
      const post = orm.em.create(Post, {title: "first title"});
      await orm.em.persistAndFlush(post);
    };
    
    main().catch((err) => {
        console.log(err);
    });
    
    7 dan folder
    const main = async () => {
      const orm = await MikroORM.init(config);
      await orm.getMigrator().up();
      const post = orm.em.create(Post, {title: "first title"});
      await orm.em.persistAndFlush(post);
    };
    
    main().catch((err) => {
        console.log(err);
    });
    
    8

Ketika saya mencobanya, katanya

Error: Initial migration cannot be created, as some migrations already exist. The files listed are in the node modules folder.
  1. Saya juga mencoba mengatur
    const main = async () => {
      const orm = await MikroORM.init(config);
      await orm.getMigrator().up();
      const post = orm.em.create(Post, {title: "first title"});
      await orm.em.persistAndFlush(post);
    };
    
    main().catch((err) => {
        console.log(err);
    });
    
    _9 ke
    const post = orm.em.create(Post, {title: "first title", id: 2});
    
    0 di
    const post = orm.em.create(Post, {title: "first title", id: 2});
    
    1 - dan mendapatkan masalah yang sama seperti yang dijelaskan di atas

Apakah ada yang tahu ini?

Satu hal yang saya perhatikan adalah setelah menghapus folder dist dan modul node dan menjalankan kembali benang, file

const post = orm.em.create(Post, {title: "first title", id: 2});
2 tidak terlihat seperti aslinya Ben. Sekarang dikatakan