{"id":44085,"library":"typescript-mysql-model","title":"TypeScript MySQL Model","description":"A CLI tool and library to generate TypeScript interfaces, classes, and MySQL table schemas from database definitions. Current stable version is 1.12.0. The package relies on knex for database introspection and handlebars for templating. It is primarily used as a code generator to scaffold TypeScript models from an existing MySQL database. Release cadence is low; last update was in 2020. Differentiators include generating both TypeScript types and MySQL create table statements, and handling change-case and pluralization automatically.","status":"active","version":"1.12.0","language":"javascript","source_language":"en","source_url":"https://github.com/joelsmedberg/typescript-mysql-model","tags":["javascript","typescript","mysql","orm","generate","class","interface"],"install":[{"cmd":"npm install typescript-mysql-model","lang":"bash","label":"npm"},{"cmd":"yarn add typescript-mysql-model","lang":"bash","label":"yarn"},{"cmd":"pnpm add typescript-mysql-model","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Used for database connection and schema introspection","package":"knex","optional":false},{"reason":"MySQL driver for the database connection","package":"mysql","optional":false},{"reason":"Template engine for generating output files","package":"handlebars","optional":false}],"imports":[{"note":"Package provides CommonJS output; named import works in both ESM and CJS contexts. If using require, you need to destructure as shown.","wrong":"const generateModelFiles = require('typescript-mysql-model').generateModelFiles","symbol":"generateModelFiles","correct":"import { generateModelFiles } from 'typescript-mysql-model'"},{"note":"ModelGenerator is a named class export, not a default export.","wrong":"import ModelGenerator from 'typescript-mysql-model'","symbol":"ModelGenerator","correct":"import { ModelGenerator } from 'typescript-mysql-model'"},{"note":"Config is a named exported interface for configuration options.","wrong":"","symbol":"Config","correct":"import { Config } from 'typescript-mysql-model'"}],"quickstart":{"code":"import { generateModelFiles } from 'typescript-mysql-model';\n\nconst config = {\n  connection: {\n    host: process.env.DB_HOST ?? 'localhost',\n    user: process.env.DB_USER ?? 'root',\n    password: process.env.DB_PASSWORD ?? '',\n    database: process.env.DB_NAME ?? 'my_database'\n  },\n  outputDir: './models',\n  generateClasses: true,\n  generateInterfaces: true,\n  generateTables: true\n};\n\ngenerateModelFiles(config)\n  .then(() => console.log('Models generated successfully'))\n  .catch(err => console.error(err));","lang":"typescript","description":"Generates TypeScript model files from a MySQL database using a config object for connection and output settings."},"warnings":[{"fix":"Ensure MySQL server is running and accessible with the given credentials.","message":"The package requires a running MySQL database to generate models; it does not work with a schema file.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Consider using knex directly or another ORM for better compatibility.","message":"The package uses knex version 0.21.1, which may have breaking changes in newer MySQL versions (8.0+). Some column types may not be correctly identified.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Check for newer alternatives like typeorm or prisma.","message":"The package has not been updated since 2020; dependencies like knex and mysql are outdated.","severity":"deprecated","affected_versions":">=1.0.0"},{"fix":"Make sure to version control your generated models or backup before running.","message":"The output directory will be overwritten without warning; no diff or backup is created.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'1.12.0':25 '2020':63 'automat':82 'cadenc':56 'case':79 'chang':78 'change-cas':77 'class':13,88 'cli':5 'code':44 'creat':72 'current':21 'databas':19,32,54 'definit':20 'differenti':64 'exist':52 'generat':10,45,66,87 'handl':76 'handlebar':35 'includ':65 'interfac':12,89 'introspect':33 'javascript':83 'knex':30 'last':59 'librari':8 'low':58 'model':3,49 'mysql':2,15,53,71,85 'orm':86 'packag':27 'plural':81 'primarili':40 'releas':55 'reli':28 'scaffold':47 'schema':17 'stabl':22 'statement':74 'tabl':16,73 'templat':37 'tool':6 'type':69 'typescript':1,11,48,68,84 'updat':60 'use':41 'version':23","created_at":"2026-06-05T17:02:54.224306+00:00","updated_at":"2026-06-05T17:02:54.224306+00:00","problems":[{"fix":"Run npm install knex@0.21.1 mysql --save-dev","cause":"Missing knex dependency when using the library programmatically.","error":"Error: Cannot find module 'knex'"},{"fix":"Use import { generateModelFiles } from 'typescript-mysql-model'","cause":"Incorrect import; using default import instead of named import.","error":"TypeError: generateModelFiles is not a function"},{"fix":"Run ALTER USER 'user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; or upgrade to mysql2.","cause":"MySQL 8.0 uses caching_sha2_password by default, not supported by older mysql npm package.","error":"Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client"}],"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":"https://github.com/joelsmedberg/typescript-mysql-model#readme","github":"https://github.com/joelsmedberg/typescript-mysql-model","docs":null,"changelog":null,"pypi":null,"npm":"typescript-mysql-model","openapi_spec":null,"status_page":null,"smithery":null,"categories":["database"],"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}}