{"id":43350,"library":"mysql-sequelize-model-generator","title":"MySQL Sequelize Model Generator","description":"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.","status":"active","version":"1.3.1","language":"javascript","source_language":"en","source_url":null,"tags":["javascript","typescript","library","mysql","sequelize"],"install":[{"cmd":"npm install mysql-sequelize-model-generator","lang":"bash","label":"npm"},{"cmd":"yarn add mysql-sequelize-model-generator","lang":"bash","label":"yarn"},{"cmd":"pnpm add mysql-sequelize-model-generator","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Generated models depend on Sequelize ORM at runtime","package":"sequelize","optional":false},{"reason":"TypeScript definitions needed for Sequelize decorators","package":"@types/sequelize","optional":true},{"reason":"Required by Sequelize TypeScript decorators","package":"reflect-metadata","optional":false},{"reason":"Database driver for schema introspection","package":"mysql2","optional":false}],"imports":[{"note":"Default export; CommonJS require() does not work directly because package is ESM-only.","wrong":"const MysqlSequelizeModelGenerator = require('mysql-sequelize-model-generator')","symbol":"MysqlSequelizeModelGenerator","correct":"import MysqlSequelizeModelGenerator from 'mysql-sequelize-model-generator'"},{"note":"Named export from main entry; no subpath needed.","wrong":"import { OutputLanguage } from 'mysql-sequelize-model-generator/esm'","symbol":"OutputLanguage","correct":"import { OutputLanguage } from 'mysql-sequelize-model-generator'"},{"note":"Type-only import for TypeScript to avoid runtime import of default export.","wrong":"import { MysqlSequelizeModelGenerator } from 'mysql-sequelize-model-generator'","symbol":"MysqlSequelizeModelGenerator (type)","correct":"import type { MysqlSequelizeModelGenerator } from 'mysql-sequelize-model-generator'"},{"note":"GeneratorOptions is a named interface, not a default export.","wrong":"import GeneratorOptions from 'mysql-sequelize-model-generator'","symbol":"GeneratorOptions","correct":"import { GeneratorOptions } from 'mysql-sequelize-model-generator'"},{"note":"The config file is not a module; it's loaded internally by the generator via fs.","wrong":"import config from './custom-alias-config.json'","symbol":"custom-alias-config.json","correct":"No import needed; file is created/read by the generator at runtime"}],"quickstart":{"code":"import MysqlSequelizeModelGenerator, { OutputLanguage } from 'mysql-sequelize-model-generator';\n\nconst generator = new MysqlSequelizeModelGenerator({\n  host: process.env.DB_HOST ?? 'localhost',\n  port: parseInt(process.env.DB_PORT ?? '3306'),\n  username: process.env.DB_USER ?? '',\n  password: process.env.DB_PASSWORD ?? '',\n  database: process.env.DB_NAME ?? '',\n});\n\nasync function main() {\n  // Generate TypeScript models (default)\n  await generator.generate('./src/models', {\n    outputLanguage: OutputLanguage.TYPESCRIPT,\n    skipViews: true,\n  });\n  console.log('Models generated successfully!');\n}\n\nmain().catch(console.error);","lang":"typescript","description":"Creates a MysqlSequelizeModelGenerator instance with database credentials from environment variables, then generates Sequelize TypeScript models into ./src/models."},"warnings":[{"fix":"Use OutputLanguage.TYPESCRIPT instead of 'typescript' string. The enum is now enforced.","message":"Deprecated: using 'outputLanguage' value as a string (\"typescript\") instead of enum will cause a runtime error in v1.3+","severity":"breaking","affected_versions":">=1.3.0"},{"fix":"npm install sequelize reflect-metadata","message":"Generated models require reflect-metadata and sequelize to be installed at runtime","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use dynamic import() instead of require() if needed.","message":"The package is ESM-only; CommonJS require() will fail with ERR_REQUIRE_ESM","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Replace 'javascript' string with OutputLanguage.JAVASCRIPT.","message":"Using outputLanguage: 'javascript' (string) is deprecated; use OutputLanguage.JAVASCRIPT","severity":"deprecated","affected_versions":">=1.3.0"},{"fix":"Ensure your app's CWD is writeable, or use absolute paths.","message":"custom-alias-config.json is created in the current working directory, not the output directory","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Update code to reference model-specific FK enums (e.g., UserFK instead of global FK).","message":"Prior to v1.3.0, FK enums were global (e.g., UserFK, PostFK could conflict with other models); now each model gets its own enum","severity":"breaking","affected_versions":"<1.3.0"}],"env_vars":null,"search_vec":"'2024':27 'add':69 'alia':49,70 'auto':67 'cli':5 'compet':63 'current':20 'custom':50,71 'databas':16 'decor':36 'design':76 'detect':28 'differenti':40 'enum':38,45 'first':75 'fk':44 'foreign':30 'generat':4,10,33 'javascript':61,77 'key':31,39 'last':24 'librari':79 'model':3,13,42 'model-specif':41 'mysql':1,15,80 'oct':26 'output':62 'plural':54 'postfk':47 'programmat':7 'proper':34 'regular':22 'relationship':29 'releas':25 'runtim':48 'schema':17 'sequel':2,11,35,66,81 'sequelize-auto':65 'setalia':52 'smart':53 'specif':43 'stabl':21 'support':56 'tool':8 'typescript':59,74,78 'typescript-first':73 'typescript/javascript':12 'updat':23 'userfk':46 'v1.3.1':18 'via':51","created_at":"2026-06-05T16:59:22.754750+00:00","updated_at":"2026-06-05T16:59:22.754750+00:00","problems":[{"fix":"Change require() to import or dynamic import()","cause":"Package is ESM-only and cannot be required()","error":"ERR_REQUIRE_ESM: Must use import to load ES Module: /path/to/node_modules/mysql-sequelize-model-generator/src/index.js"},{"fix":"Run 'npm install sequelize'","cause":"Sequelize not installed at runtime","error":"Error: Generated models require 'sequelize' to be installed. Please run 'npm install sequelize'."},{"fix":"Use OutputLanguage.TYPESCRIPT from the package","cause":"Passed a string instead of the enum","error":"Error: Invalid output language: 'typescript'. Use OutputLanguage.TYPESCRIPT instead."},{"fix":"Run 'npm install reflect-metadata' and import it at the entry point: import 'reflect-metadata'","cause":"reflect-metadata not installed","error":"Error: Cannot find module 'reflect-metadata'"},{"fix":"Set DB_HOST in .env or process.env","cause":"Missing required environment variable","error":"Error: DB_HOST environment variable is not set"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":null,"github":null,"docs":null,"changelog":null,"pypi":null,"npm":"mysql-sequelize-model-generator","openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-05","next_check":"2026-09-03","install_tag":null}}