Цикл 4: создание отправителей для добавления фиктивных данных в таблицу mySQL - PullRequest
0 голосов
/ 20 февраля 2019

Я искал вариант создания сеялок для добавления фиктивных данных в мое приложение loopback 4.Однако я не могу найти никакой опции в официальной документации.

Я нашел пару постов, но они относятся к петле 3, например:

  1. Loopback: СозданиеSeed Script
  2. loopback-seed

Пожалуйста, укажите мне на документацию для этого.

РЕДАКТИРОВАТЬ:

В соответствии с предложением я создал файл start.js в папке скриптов:

require('babel-register')({
    presets: ['es2015']
})

module.exports = require('./seed.js')

И скопировал скрипт, преобразовав его в JavaScript, указанный в файле seed.js.Когда я запускаю скрипт, я получаю сообщение об ошибке:

Не удается найти модели и репозитории модулей

, хотя я набрал правильный путь.

Ответы [ 2 ]

0 голосов
/ 29 марта 2019

Мы использовали отдельную библиотеку db-migrate , чтобы не допустить наших скриптов миграции и заполнения в нашу базу кодов обратной связи.Более того, поскольку методы jbgler для db.migrate и db.update не являются точными на 100%, как упоминалось в документации. Миграции базы данных LB4

0 голосов
/ 21 февраля 2019

На самом деле, я делаю это с помощью 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');
});
...