创建表时默认将数据创建到数据库中

问题描述 投票:0回答:1

我第一次在我的 NestJS 项目中使用 Sequelize。当 Sequelize 连接到数据库时,它会自动创建表及其架构。我还希望它自动将一些默认数据导入数据库。例如 DimSetting 会导入一堆默认设置。

sequelize.js nestjs sequelize-typescript
1个回答
0
投票

我刚刚学习 NestJS 和 Sequelize,所以这个答案可能是也可能不是一个好方法,但我想在首次创建表时在

Users
表中创建一个默认条目。

在我的

UsersService
中似乎是执行此操作的好地方,所以我执行了以下操作:

user.model.ts:

@Table
export class User extends Model {
    @Column
    username: string;

    // ... other properties
}

users.service.ts

@Injectable()
export class UsersService implements OnModuleInit {
    constructor(
        @InjectModel(User)
        private readonly userModel: typeof User,
    ) {}

    async onModuleInit() {
        await this.createDefaultUser();
    }

    async createDefaultUser() {
        if ((await this.userModel.count()) > 0) return;

        await User.create({ username: 'fred' });
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.