{"library":"sequelize-automate","title":"Sequelize Automate Model Generator","description":"sequelize-automate is a utility designed to automatically generate Sequelize ORM model definitions directly from an existing database schema. It supports various code styles including JavaScript, TypeScript, Egg.js, and Midway.js for the generated models. The package is currently at version 1.2.2 and appears to be actively maintained, though it does not specify a fixed release cadence. Its key differentiator is its straightforward command-line interface (CLI) that simplifies scaffolding models from an established database, reducing the manual boilerplate required when integrating Sequelize into existing projects. It supports popular SQL dialects such as MySQL, PostgreSQL, MariaDB, SQLite, and Microsoft SQL Server, requiring users to install the corresponding database driver separately. This tool is particularly useful for accelerating development in brownfield projects or when rapidly prototyping a Sequelize application against an existing data source.","language":"javascript","status":"active","last_verified":"Thu Apr 23","install":{"commands":["npm install sequelize-automate"],"cli":{"name":"sequelize-automate","version":null}},"imports":["import Automate from 'sequelize-automate'; // ESM\nconst Automate = require('sequelize-automate'); // CJS","const automate = new Automate(database, user, pass, options);\nconst generatedCode = await automate.run();","const automate = new Automate(database, user, pass, options);\nconst definitions = await automate.getDefinitions();"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import { exec } from 'child_process';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\n// Database connection details from environment variables or defaults\nconst DB_HOST = process.env.DB_HOST ?? 'localhost';\nconst DB_NAME = process.env.DB_NAME ?? 'your_database_name';\nconst DB_USER = process.env.DB_USER ?? 'root';\nconst DB_PASSWORD = process.env.DB_PASSWORD ?? '';\nconst DB_PORT = process.env.DB_PORT ?? '3306'; // e.g., '5432' for Postgres\nconst DB_DIALECT = process.env.DB_DIALECT ?? 'mysql'; // e.g., 'postgres', 'sqlite', 'mssql'\nconst OUTPUT_DIR = path.join(__dirname, 'generated_models');\n\n// Ensure output directory exists (for a real project, consider `fs.mkdirSync`)\nconsole.log(`Models will be generated in: ${OUTPUT_DIR}`);\n\n// CLI command to generate TypeScript models\nconst command = `npx sequelize-automate \\\n  --type ts \\\n  --host ${DB_HOST} \\\n  --database ${DB_NAME} \\\n  --user ${DB_USER} \\\n  --password ${DB_PASSWORD} \\\n  --port ${DB_PORT} \\\n  --dialect ${DB_DIALECT} \\\n  --output ${OUTPUT_DIR} \\\n  --camel`;\n\nconsole.log(`Executing command:\\n${command}`);\n\nexec(command, (error, stdout, stderr) => {\n  if (error) {\n    console.error(`Error generating models: ${error.message}`);\n    return;\n  }\n  if (stderr) {\n    console.error(`stderr: ${stderr}`);\n  }\n  console.log(`Models generated successfully:\\n${stdout}`);\n  console.log(`\nCheck the '${OUTPUT_DIR}' directory for your new Sequelize models.`);\n});","lang":"typescript","description":"This quickstart demonstrates how to use `sequelize-automate` via its command-line interface (CLI) to generate TypeScript-based Sequelize models from an existing database schema. It utilizes environment variables for secure database connection details and outputs the generated files to a specified directory.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}