Generate projects from mysql-schema
JSON files.
$ npm i -g mysql-schema-generator
This is an example that uses a configurations file for mysql-schema
setup, from CLI:
mysql-schema-generator
--schema-generation
--schema-configurations database.configurations.js
--schema-extensions database.extensions.js
--schema-output database.schema.js
--generator-schema database.schema.js
--generator-directories ./templates
--generator-output .
This is an example that uses programmatic variables for mysql-schema
setup instead, from API:
require("mysql-schema-generator").generateProject({
schema: {
generation: true,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
host: process.env.DB_HOST,
port: process.env.DB_PORT,
database: process.env.DB_NAME,
extensions: process.env.DB_EXTENSIONS,
output: __dirname + "/db1.schema.js",
},
generator: {
schema: __dirname + "/db1.schema.js",
directories: [],
output: __dirname + "/db1"
}
}).then(() => {
console.log("[*] Project successfully generated!");
}).catch(console.log);
This project is about some parameters (input) and some process, that generate some files that compose a project (output).
The parameters started with schema
are inherited from mysql-schema
project.
The parameters started with generator
are from this project.
generatorSchema
: file where the schema is taken from.generatorDirectories
: paths to directories used as template.generatorOutput
: path to the directory where we will dump the generated files.
For each generatorDirectories
value, mysql-schema-generator
will look for the next folders:
${generatorDirectory}/callbacks-before
- Functional
sync/async
modules called at the begining.
- Functional
${generatorDirectory}/files-to-override
- Files that will be copied, overriding any prexistent file.
${generatorDirectory}/files-to-create
- Files that will be copied only if there was no previous file.
${generatorDirectory}/templates-to-override
- Templates that will be rendered, overriding any prexistent file.
${generatorDirectory}/templates-to-create
- Templates that will be rendered only if there was no previous file.
${generatorDirectory}/callbacks-after
- Functional
sync/async
modules called at the end.
- Functional
This is the exact order in which these files are generated.
This project is under WTFPL or 'What The Fuck Public License', which means 'do whatever you want'.
Please, report issues or suggestions here.