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

mysql-migrator

v2.0.0

Published

npm data migration and data seeding package for mysql, mariadb

Downloads

16

Readme

mysql-migrator

npm migration package for mysql, mariadb

Star Count Licence Language js-standard-style

Table Of contents

  • Installation
  • Setup
    • FOR ES6
    • FOR CommonJs
    • Update package.json
  • Table Migration
    • create migration
    • code sample for table migration file
    • run migration file
      • up
      • rollback
  • Data Seeding
    • create seeding
    • code sample for data seeding file
    • run seeding file
      • up
      • rollback

Installation

npm install mysql-migrator

Setup

create migrator.js with the following code.

FOR ES6

import { Migrator, Output } from 'mysql-migrator'

import path from 'path'
import { fileURLToPath } from 'url'

const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)

const dbConfig = {
  host: 'localhost',
  user: 'your-user-name',
  port: 3306,
  password: 'your-password',
  database: 'your-database'
}
const migrationsPath = __dirname + '/migrations'
const migrator = new Migrator(dbConfig, migrationsPath)
const result = await migrator.init()
Output(result)
process.exit()

FOR CommonJs

const { Migrator, Output } = require('mysql-migrator')

const dbConfig = {
  host: 'localhost',
  user: 'your-user-name',
  port: 3306,
  password: 'your-password',
  database: 'your-database'
}
const migrationsPath = __dirname + '/migrations'
const migrator = new Migrator(dbConfig, migrationsPath)
const result = await migrator.init()
Output(result)
process.exit()

Update package.json

...
  "scripts": {
    ...
    "migrate": "node migrator.js"
  },
...

Table Migration

create migration file

node migrator.js migration:create create_table_user

or

npm run migrate migration:create create_table_user

code sample for table migration file

there are two function up and rollback functions.

  • up is for upgrading
  • rollback is for downgrading. to use this function when you need to roll back to previous batch.
//write sql statement to create or modify
module.exports = {
 up: async (tbl) => {
   return await tbl.create('tblUser', {
     id: 'int NOT NULL PRIMARY KEY AUTO_INCREMENT',
     name: 'varchar(254) NOT NULL'
   })
 },
 rollback: async (tbl) => {
   return await tbl.dropTable('tblUser')
 }
}

run migration file

up

node migrator.js migration:up

or

npm run migrate migration:up

rollback

node migrator.js migration:rollback

or

npm run migrate migration:rollback

Data Seeding

create seeding file

node migrator.js seeding:create user_data_seeding

or

npm run migrate seeding:create user_data_seeding

code sample for data seeding file

there are two function up and rollback functions.

  • up is for upgrading
  • rollback is for downgrading. to use this function when you need to roll back to previous batch.
//write sql statement to create or modify
module.exports = {
 up: async (_query) => {
   const queryString = 'INSERT INTO tblUser VALUES(1,"hello")'
   await _query(queryString)
 },
 rollback: async (_query) => {
   const queryString = 'TRUNCATE TABLE tblUser'
   await _query(queryString)
 }
}

run seeding file

up

node migrator.js seeding:up

or

npm run migrate seeding:up

rollback

node migrator.js seeding:rollback

or

npm run migrate seeding:rollback

Thank You for Visiting to my repo. :)