TypeORM-运行服务器时自动填表 [英] TypeORM - Auto fill table when running server

查看:34
本文介绍了TypeORM-运行服务器时自动填表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在TypeORM中,可以在运行服务器时运行迁移。我有一张名为角色的桌子。这些是用户可以拥有的不同角色(管理员、用户等)。有没有办法也自动将这些值插入到创建的角色表中?

我知道我可以通过插入每个角色来更改迁移文件。但有没有一种更干净的方法来实现这一点呢?

推荐答案

您可以使用typeorm-seeding库,它很容易使用,在创建实体后,您应该创建一个工厂播种机来运行您的种子,一个简单的示例:

    Factory
The purpose of a factory is to create new entities with generate data.

Note: Factories can also be used to generate data for testing.

// user.factory.ts
define(User, (faker: typeof Faker) => {
  const gender = faker.datatype.number(1)
  const firstName = faker.name.firstName(gender)
  const lastName = faker.name.lastName(gender)

  const user = new User()
  user.name = `${firstName} ${lastName}`
  user.password = faker.random.word()
  return user
})

// pet.factory.ts
define(Pet, (faker: typeof Faker) => {
  const gender = faker.datatype.number(1)
  const name = faker.name.firstName(gender)

  const pet = new Pet()
  pet.name = name
  pet.age = faker.datatype.number()
  pet.user = factory(User)() as any
  return pet
})
Seeder
And last but not least, create a seeder. The seeder can be called by the configured cli command seed:run. In this case, it generates 10 pets with a owner (User).

Note: seed:run must be configured first. Go to CLI Configuration.

// create-pets.seed.ts
export default class CreatePets implements Seeder {
  public async run(factory: Factory, connection: Connection): Promise<any> {
    await factory(Pet)().createMany(10)
  }
}

您可以在文档中找到所需的一切

这篇关于TypeORM-运行服务器时自动填表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆