diff --git a/README.md b/README.md index 3eb7a3d..203af43 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,12 @@ # sequelize-migration-generator Simple utility to automatically generate and manage sequelize migrations + +### Installaion +``` +npm i sequelize-migration-generator +``` + +## Usage +``` +sequelize-migration-generator +``` diff --git a/bin/main.js b/bin/main.js index aaeb540..7e11d97 100755 --- a/bin/main.js +++ b/bin/main.js @@ -11,6 +11,8 @@ var Model = Classes.Model; var Field = Classes.Field; var modelsDir = process.argv[2]; var migrationsDir = process.argv[3]; +var Sequelize = require("sequelize"); +var sequelize = new Sequelize(); function getAbsPath( relPath ){ @@ -40,19 +42,34 @@ function createDir( pathName ){ } } +function importModels( modelDir ){ + + fs.readdirSync( modelsDir ) + .filter( v => v.match(/\.model\.js/) ) + .forEach(function(file) { + sequelize.import( path.join(modelsDir, file)); + }); + var models = sequelize.models; + + Object.keys(models).forEach(function(modelName) { + if ( models[modelName].associate) { + models[modelName].associate(models); + } + }); + return models; +} + function main(){ modelsDir = getAbsPath( modelsDir ); migrationsDir = getAbsPath( migrationsDir ); createDir( migrationsDir ); log( 'modelsDir', modelsDir ); - var models = require( modelsDir ); + var models = importModels( modelsDir ); Object.keys( models ) .forEach( function( modelName, i){ - if( [ 'Sequelize', 'sequelize'].indexOf(modelName) === -1 ){ - genMigration( models[ modelName ], i ); - } + genMigration( models[ modelName ], i ); }); } diff --git a/package.json b/package.json index cb5f36c..acc3c52 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sequelize-migration-generator", - "version": "0.0.1", + "version": "0.1.0", "description": "Sequelize migration file generator ", "main": "index.js", "scripts": {