我第一次在我的 NestJS 项目中使用 Sequelize。当 Sequelize 连接到数据库时,它会自动创建表及其架构。我还希望它自动将一些默认数据导入数据库。例如 DimSetting 会导入一堆默认设置。
我刚刚学习 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' });
}
}