Skip to content

joneldiablo/objection-model-generator

Repository files navigation

OMG

Objection Model Generator is a tool to automagically generate all ObjectionJS models from Mysql data base, using the information_schema table to let us know tables, columns and BelongsToOneRelations.

require('dotenv').config();
const fs = require('fs');
const Omg = require('objection-model-generator');

// OPTIONAL: add pluralize customization
const pluralize = require('pluralize');
pluralize.addSingularRule('mouse', 'mice');
pluralize.addSingularRule('Mouse', 'Mice');
//----

const main = async () => {
  let omg = new Omg({
    host: process.env.DB_HOST,
    port: process.env.DB_PORT,
    user: process.env.DB_USER,
    password: process.env.DB_PASS
  }, process.env.DB_NAME, '../knex'); // relative path to the knex instance, the generated file goings to require that file
  let ms = await omg.createModels();
  let path = 'src/api/models/generated.js'; // path to where goings to be created the output
  fs.writeFileSync(path, ms);
  console.log('-> file writed:', path);
  process.exit();
}

main();