npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

seed-creator

v1.4.1

Published

Inserta registros en la base de datos, utilizando Sequelize.

Downloads

19

Readme

Seed Creator

Cuando se crea una nueva base de datos, casi siempre es necesario insertar los registros iniciales, especialmente en entornos de desarrollo y pruebas, porque para probar ciertas funcionalidades del sistema, es necesario contar con datos de prueba. Es ahí donde entran los seeders, son aquellos archivos encargados de insertar registros directamente en la base de datos.

La forma tradicional de insertar estos registros es creando para cada tabla un archivo diferente con la fecha de creación incluida en el nombre del fichero, esto permite insertarlos ordenadamente. Sin embargo, este trabajo se complica cuando se tienen registros referenciados, haciendo mas dificil la creación de estos.

Esta librería permite crear registros utilizando instancias de modelos Sequelize. Utiliza un sistema de inserción de datos secuencial, con la que es posible detectar automáticamente las relaciones entre las tablas y crear los registros de manera ordenada incluso haciendo uso de un solo fichero.

Características

  • Puede insertar un conjunto de registros anidados.
  • Soporta modelos definidos con esquemas.
  • Las claves primarias son opcionales siempre y cuando sean autoincrementables.
  • La inserción es secuencial, por lo tanto, al insertar el segundo segistro es posible enviar los resultados del primer registro.
  • Se puede restringir la inserción de registros mediante los esquemas.
  • Si los registros tienen definido la clave primaria y no contienen asociaciones, se insertan en conjunto con el método bulkCreate.

Instalación

Para instalar sobre un proyecto, ejecutar el siguiente comando:

$ npm install --save seed-creator

Ejemplo

Inserción de registros en las tablas relacionadas libro y autor, desde un solo fichero.

const Seed = require('seed-creator')

const LIBRO = sequelize.define('libro', { ... }, { schema: 'uno' })
const AUTOR = sequelize.define('autor', { ... }, { schema: 'dos' })

LIBRO.belongsTo(AUTOR, { as: 'autor', foreignKey: { name: 'fid_autor', targetKey: 'id_autor' } })

const options = { schemas: ['uno', 'dos'] }

const resultado = await Seed.create(LIBRO, [
  {
    titulo : 'El gato negro',
    precio : 11.99,
    autor  : {
      id_autor : 10,
      nombre   : 'Edgar Allan Poe'
    }
  },
  {
    titulo    : 'El cuervo',
    precio    : 15.99,
    fid_autor : 10
  }
], options)

// Ejemplo de resultado:
// { entries: 16, elapsedTime: 0.087 }