我一直在寻找创建数据播种器的选项,以在我的loopback 4应用程序中添加虚拟数据。但是,我无法在官方文档中找到任何选项。
我发现了几个帖子,但那些引用了loopback 3,如:
请指出我这样做的文档。
编辑:
根据建议,我在scripts文件夹中创建了start.js文件:
require('babel-register')({
presets: ['es2015']
})
module.exports = require('./seed.js')
我已经复制了脚本,将其转换为seed.js文件中提到的JavaScript。当我运行脚本时,我收到错误:
找不到模块模型和存储库
虽然我输入了正确的路径。
实际上,我正在使用Loopback直接这样做(这是打字稿):
import * as users from './users.json';
import * as Promise from 'bluebird';
import {Entity, DefaultCrudRepository} from '@loopback/repository';
import {MyApplication} from '../src/application';
import {User} from '../src/models';
import {UserRepository} from '../src/repositories';
const app = new MyApplication();
async function loadByModel<T extends Entity, ID>(items: T[], repository$: DefaultCrudRepository<T,ID>, type: { new(it: Partial<T>): T ;}){
console.log(type.toString());
let repository = await repository$;
await repository.deleteAll();
await Promise.map(items, async (item: T) => {
try{
return await repository.create((new type(item)));
} catch(e){
console.log(item);
}
}, {concurrency: 50});
}
async function load(){
await loadByModel(users, await app.getRepository(UserRepository), User);
}
app.boot().then(async () => {
await load();
console.log('done');
});
我们使用单独的库db-migrate来保持我们的迁移和种子脚本不在我们的环回代码库中。 Moreso,因为juggler的db.migrate和db.update方法也不像文档中提到的那样100%准确。 LB4 Database Migrations