node-forge-cli
v1.0.2
Published
A Node.js CLI toolkit for scaffolding controllers, models, routes, views, and migrations with multi-database support
Maintainers
Readme
Node CLI Scaffolding & Migration Toolkit
A lightweight Node.js CLI toolkit for generating project resources and managing database setup, migrations, and seeders.
This package helps you quickly scaffold common backend files such as controllers, models, routes, views, seeders, migrations, and full resources, while also supporting database configuration and migration workflows.
Features
Database Operations
- Database setup generator
- Migration runner
- Fresh migration support
- Seeder execution
- Rollback support
CLI Generators
- Controller
- Model
- Migration
- Seeder
- View
- Route
- Database config
- Full resource scaffold
All commands are implemented through Node-based CLI scripts under the cli/ and database/ directories.
Supported Databases
| Database | Driver |
|-------------|----------------------|
| MySQL | mysql2 |
| PostgreSQL | pg |
| MongoDB | mongoose |
| Cassandra | cassandra-driver |
| Redis | ioredis |
Configuration values are pulled from environment variables in .env.example and loaded through config/database.js.
Installation
Clone or copy the package into your project, then install dependencies:
npm i node-forge-cliFor automatic database dependency setup, run:
node-forge migrationThe database setup script creates .env.example, config/database.js, and utils/database.js, and installs required database packages such as dotenv, mysql2, pg, mongoose, cassandra-driver, and ioredis.
Package Scripts
Add these scripts to your package.json:
{
"scripts": {
"migration": "node-forge-forge database/setup.js",
"migrate": "node-forge database/migrate.js",
"migrate:fresh": "node-forge database/migrate.js fresh",
"migrate:fresh-seed": "node-forge database/migrate.js fresh --seed",
"migrate:rollback": "node-forge database/migrate.js rollback",
"make:controller": "node-forge cli/make-controller.js",
"make:model": "node-forge cli/make-model.js",
"make:migration": "node-forge cli/make-migration.js",
"make:seeder": "node-forge cli/make-seeder.js",
"make:view": "node-forge cli/make-view.js",
"make:route": "node-forge cli/make-route.js",
"make:database": "node-forge cli/make-database.js",
"make:resource": "node-forge cli/make-scaffold.js"
}
}Usage
1. Setup Database Files
node-forge migrationPrepares database-related configuration files and environment variables. You can also pass a database driver directly:
node-forge database/setup.js mysql
node-forge database/setup.js postgres
node-forge database/setup.js mongodb
node-forge database/setup.js redis2. Run Migrations
node-forge migrateRuns all migration files from the database directory.
3. Run Fresh Migrations with Seeders
node-forge migrate:fresh-seedRefreshes all migrations and then executes all seeders from the database/seeders directory.
4. Rollback Migrations
node-forge migrate:rollbackExecutes the down() method of migrations in reverse order.
Generators
Create a Controller
node-forge make:controller user
node-forge make:controller admin/userCreates controller files inside the controllers/ directory with common CRUD methods: index, show, store, update, and destroy. Nested paths are supported.
Create a Model
node-forge make:model user
node-forge make:model admin/userCreates a model class inside the models/ directory. Nested paths are supported.
Create a Migration
node-forge make:migration create_users_tableCreates a timestamped migration file inside database/migrations/ with up() and down() methods.
Create a Seeder
node-forge make:seeder user
node-forge make:seeder admin/usersCreates a seeder file inside database/seeders/. Nested paths are supported.
Create a View
node-forge make:view users/index
node-forge make:view admin/users/showCreates an .ejs view file inside the views/ directory.
Create a Route
node-forge make:route user
node-forge make:route admin/userCreates a route file inside routes/ and auto-registers it in routes/index.js. Generated routes include standard CRUD endpoints.
Create a Full Resource Scaffold
node-forge make:resource user
node-forge make:resource admin/userRuns multiple CLI generators in sequence to scaffold a full resource. Creates the following files:
- Controller
- Service
- Model
- Route
- Seeder
- Migration
Generated Project Structure
project/
├── cli/
├── config/
│ └── database.js
├── controllers/
├── database/
│ ├── migrations/
│ ├── seeders/
│ ├── migrate.js
│ └── setup.js
├── models/
├── routes/
│ └── index.js
├── services/
├── utils/
│ └── database.js
├── views/
└── .env.exampleExample Workflow
# 1. Setup database configuration
node-forge migration
# 2. Generate a full user resource
node-forge make:resource user
# 3. Run migrations
node-forge migrate
# 4. Refresh migrations and seed the database
node-forge migrate:fresh-seedNotes
- Nested resource names are supported, such as
admin/user. - Migration files are timestamped automatically.
- Route generation auto-registers routes in
routes/index.js. - Fresh migration disables foreign key checks before rollback.
- The
make:resourcescript callsmake-service.js— ensure it is properly implemented before use, as the current export may throw at runtime ifindexis not defined.
License
MIT
