2.2.0 • Published 2 years ago

tiny-seeder v2.2.0

Weekly downloads
-
License
Apache-2.0 Licens...
Repository
github
Last release
2 years ago

Tiny-seeder

Populate your database with a simple SQL or JSON file

Documentation here

$ npm i -D tiny-seeder

Getting started

  • npm i -D tiny-seeder @faker-js/faker

# Data folder and javascript file creation

  • mkdir ./data
  • touch ./data/seeder.js

# Javascript file content examples (seeder.js)

const { Seeder } = require('tiny-seeder');
const { faker } = require('@faker-js/faker');
const { v4: UUID } = require('uuid');

const tables = [
  // First table
  {
    name: 'company',
    rows: 40,
    uniques: ['suffix', 'name'],
    columns: {
      suffix: faker.company.companySuffix,
      name: faker.company.companyName,
      description: faker.company.catchPhrase,
      site: faker.internet.url,
    },
  },

  // Second table with first table relation
  {
    name: 'product',
    rows: 500,
    columns: {
      name: faker.commerce.productName,
      description: faker.commerce.productDescription,
      department: faker.commerce.department,
      image: faker.image.imageUrl,
      color: { type: faker.commerce.color, nullable: true },
      price: faker.commerce.price,
      company_id: { to: 'company' },
    },
  },

  // Last table
  {
    name: 'client',
    rows: 80,
    columns: {
      uuid: { primary: true, type: UUID },
      username: faker.internet.userName,
      email: { type: faker.internet.email, unique: true },
      password: faker.internet.password,
    },
  },
];

const seeder = new Seeder(tables, { directory: './data', truncate: true });

seeder.generate();
const { Seeder } = require('tiny-seeder');
const { faker } = require('@faker-js/faker');
const { v4: UUID } = require('uuid');

const seeder = new Seeder(null, { directory: './data' });

seeder.add({
  name: 'company',
  rows: 40,
  uniques: ['suffix', 'name'],
  columns: {
    suffix: faker.company.companySuffix,
    name: faker.company.companyName,
    description: faker.company.catchPhrase,
    site: faker.internet.url,
  },
});

seeder.add({
  name: 'product',
  rows: 500,
  columns: {
    name: faker.commerce.productName,
    description: faker.commerce.productDescription,
    department: faker.commerce.department,
    image: faker.image.imageUrl,
    color: { type: faker.commerce.color, nullable: true },
    price: faker.commerce.price,
    company_id: { to: 'company' },
  },
});

seeder.add({
  name: 'client',
  rows: 80,
  columns: {
    uuid: { primary: true, type: UUID },
    username: faker.internet.userName,
    email: { type: faker.internet.email, unique: true },
    password: faker.internet.password,
  },
});

seeder.remove('client');

seeder.generate();

# Execute your file !

  • node ./data/generate.js
  • Check sql rendering in this file
2.2.0

2 years ago

2.1.3

2 years ago

2.1.2

2 years ago

2.1.1-dev

2 years ago

2.1.0-dev

2 years ago

2.0.9

2 years ago

2.0.8

2 years ago

2.0.7-dev

2 years ago

2.0.6-dev

2 years ago

2.0.5-dev

2 years ago

2.0.3-dev

2 years ago

2.0.2-dev

2 years ago

2.0.1-dev

2 years ago

2.0.0-dev

2 years ago