Registry / devops / mysql-sequelize-model-generator

mysql-sequelize-model-generator

JSON →
library1.3.1jsnpmunverified

CLI and programmatic tool to generate Sequelize TypeScript/JavaScript models from MySQL database schema. v1.3.1 is current stable; regular updates (last release Oct 2024). Detects relationships, foreign keys, and generates proper Sequelize decorators and enums. Key differentiator: model-specific FK enums (UserFK, PostFK), runtime alias customization via setAlias(), smart pluralization, and support for both TypeScript and JavaScript output. Competes with sequelize-auto but adds alias customization and TypeScript-first design.

npm install mysql-sequelize-model-generator
INSTALL
IMPORT
SIG · MYSQL-SEQUELIZE-MO
M
mysql-sequelize-model-generator
devopsjavascriptv1.3.1
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

MysqlSequelizeModelGenerator
import MysqlSequelizeModelGenerator from 'mysql-sequelize-model-generator'
const MysqlSequelizeModelGenerator = require('mysql-sequelize-model-generator')
Default export; CommonJS require() does not work directly because package is ESM-only.
OutputLanguage
import { OutputLanguage } from 'mysql-sequelize-model-generator'
import { OutputLanguage } from 'mysql-sequelize-model-generator/esm'
Named export from main entry; no subpath needed.
MysqlSequelizeModelGenerator (type)
import type { MysqlSequelizeModelGenerator } from 'mysql-sequelize-model-generator'
import { MysqlSequelizeModelGenerator } from 'mysql-sequelize-model-generator'
Type-only import for TypeScript to avoid runtime import of default export.
GeneratorOptions
import { GeneratorOptions } from 'mysql-sequelize-model-generator'
import GeneratorOptions from 'mysql-sequelize-model-generator'
GeneratorOptions is a named interface, not a default export.
custom-alias-config.json
No import needed; file is created/read by the generator at runtime
import config from './custom-alias-config.json'
The config file is not a module; it's loaded internally by the generator via fs.

Creates a MysqlSequelizeModelGenerator instance with database credentials from environment variables, then generates Sequelize TypeScript models into ./src/models.

import MysqlSequelizeModelGenerator, { OutputLanguage } from 'mysql-sequelize-model-generator'; const generator = new MysqlSequelizeModelGenerator({ host: process.env.DB_HOST ?? 'localhost', port: parseInt(process.env.DB_PORT ?? '3306'), username: process.env.DB_USER ?? '', password: process.env.DB_PASSWORD ?? '', database: process.env.DB_NAME ?? '', }); async function main() { // Generate TypeScript models (default) await generator.generate('./src/models', { outputLanguage: OutputLanguage.TYPESCRIPT, skipViews: true, }); console.log('Models generated successfully!'); } main().catch(console.error);
Debug
Known issues
breakingDeprecated: using 'outputLanguage' value as a string ("typescript") instead of enum will cause a runtime error in v1.3+
fix
Use OutputLanguage.TYPESCRIPT instead of 'typescript' string. The enum is now enforced.
affects: >=1.3.0
gotchaGenerated models require reflect-metadata and sequelize to be installed at runtime
fix
npm install sequelize reflect-metadata
affects: >=1.0.0
gotchaThe package is ESM-only; CommonJS require() will fail with ERR_REQUIRE_ESM
fix
Use dynamic import() instead of require() if needed.
affects: >=1.0.0
deprecatedUsing outputLanguage: 'javascript' (string) is deprecated; use OutputLanguage.JAVASCRIPT
fix
Replace 'javascript' string with OutputLanguage.JAVASCRIPT.
affects: >=1.3.0
gotchacustom-alias-config.json is created in the current working directory, not the output directory
fix
Ensure your app's CWD is writeable, or use absolute paths.
affects: >=1.0.0
breakingPrior to v1.3.0, FK enums were global (e.g., UserFK, PostFK could conflict with other models); now each model gets its own enum
fix
Update code to reference model-specific FK enums (e.g., UserFK instead of global FK).
affects: <1.3.0
Errors
Common errors & fixes
ERR_REQUIRE_ESM: Must use import to load ES Module: /path/to/node_modules/mysql-sequelize-model-generator/src/index.js
Package is ESM-only and cannot be required()
fix
Change require() to import or dynamic import()
Error: Generated models require 'sequelize' to be installed. Please run 'npm install sequelize'.
Sequelize not installed at runtime
fix
Run 'npm install sequelize'
Error: Invalid output language: 'typescript'. Use OutputLanguage.TYPESCRIPT instead.
Passed a string instead of the enum
fix
Use OutputLanguage.TYPESCRIPT from the package
Error: Cannot find module 'reflect-metadata'
reflect-metadata not installed
fix
Run 'npm install reflect-metadata' and import it at the entry point: import 'reflect-metadata'
Error: DB_HOST environment variable is not set
Missing required environment variable
fix
Set DB_HOST in .env or process.env
Upgrade
Version history
1.3.1latest on npm
Audit
Dependencies
sequelizerequiredGenerated models depend on Sequelize ORM at runtime
@types/sequelizeoptionalTypeScript definitions needed for Sequelize decorators
reflect-metadatarequiredRequired by Sequelize TypeScript decorators
mysql2requiredDatabase driver for schema introspection
Agent activity
2 hits · last 30 days
node
2
Resources