TypeORM - 当 运行 服务器时自动填充 table
TypeORM - Auto fill table when running server
在 TypeORM 中,可以在 运行 连接服务器时 运行 进行迁移。我有一个 table 叫做角色。这些是用户可以拥有的不同角色(管理员、用户……)。有没有办法将这些值也自动插入到创建的角色中 table?
我知道我可以通过插入每个角色来更改迁移文件。但是有没有更简洁的方法来实现这一点?
您可以使用 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 中,可以在 运行 连接服务器时 运行 进行迁移。我有一个 table 叫做角色。这些是用户可以拥有的不同角色(管理员、用户……)。有没有办法将这些值也自动插入到创建的角色中 table?
我知道我可以通过插入每个角色来更改迁移文件。但是有没有更简洁的方法来实现这一点?
您可以使用 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)
}
}
您可以在文档中找到所需的一切