mysql-procedure-map

Maps a mysql database and generates a code file for all procedures in a given database

Usage no npm install needed!

<script type="module">
  import mysqlProcedureMap from 'https://cdn.skypack.dev/mysql-procedure-map';
</script>

README

mysql-procedure-map

Automatically generate a script file housing all of the procedures in a given MySQL Database.

  1. Connects to MySQL
  2. Discovers a list of procedures and their parameters
  3. Generates an output script detailing all the procedures in the database

Setup a connection to the MySQL Database


    const MySQL = require("mysql-procedure-map");

    const db = new MySQL.Database({
        host    : 'localhost',
        user    : 'user',
        password: 'password',
        database: 'my_database'
    });

Generate a procedure map source file.

Javascript

    //Create the database connection as detailed above.
    //Call generateProcedureMapFile with the output filename and callback function.
    db.generateJavascriptFile("./procedures.js",function(err){
        if(err){
            console.error(err);
            return;
        }
        console.log('procedures.js generated from the MySQL Database');
    });

Typescript

    //Create the database connection as detailed above.
    //Call generateProcedureMapFile with the output filename and callback function.
    db.generateTypescriptFile("./procedures.ts",function(err){
        if(err){
            console.error(err);
            return;
        }
        console.log('procedures.ts generated from the MySQL Database');
    });

Calling mapped procedures

    //Require the generate script file.
    const Database = require("./procedures.js");

    //Create a new instance of the pre-generated script - Create the database connection as detailed above and pass it into new Procedures(database).
    const procedures = new Database.Procedures(db);

    //Call the on of the pre-generated procedures.
    procedures.sp_select_users(1,2,'hello',(err, tables, parameters)=>{
        if(err){
             console.error(`Error: ${err.message}`);
            return;
        }
        console.log(`Tables: ${tables.length}`);
        console.log(`Parameters: ${parameters}`);
    });