@jrmc/adonis-lucid-commands
Additional commands for AdonisJS 6 Lucid ORM to help with database management and exploration.
Features
This package provides additional Ace commands for AdonisJS applications to manage and explore databases:
Database Management Commands
db:create- Create a new databasedb:drop- Drop an existing database (with production safety)db:query- Execute a raw SQL query on the database
Database Exploration Commands
list:databases- List all configured database connectionslist:tables- List all tables in a specific database
Installation
npm install @jrmc/adonis-lucid-commands
Configuration
After installation, configure the package in your AdonisJS application:
node ace configure @jrmc/adonis-lucid-commands
This will automatically register the commands in your adonisrc.ts file.
Usage
Database Management
Create a Database
# Create database using default connection
node ace db:create
# Create database using specific connection
node ace db:create --name=mysql
Drop a Database
# Drop database using default connection
node ace db:drop
# Drop database using specific connection
node ace db:drop --name=mysql
⚠️ Safety Note: The db:drop command is disabled in production environments to prevent accidental data loss.
Query a Database
# Execute a SQL query
node ace db:query 'SELECT * FROM users'
# Execute a query on a specific connection
node ace db:query 'SELECT * FROM users' --name=mysql
Output Formats
The command supports multiple output formats:
Table format (default) - Results displayed in a formatted table with truncated long values:
node ace db:query 'SELECT * FROM users'
JSON format - Results displayed as formatted JSON (ideal for complex data or piping):
node ace db:query 'SELECT * FROM users' --json
Vertical format - Each row displayed as a block with one column per line (like MySQL \G):
node ace db:query 'SELECT * FROM users' --vertical
Database Exploration
List Database Connections
node ace list:databases
This command displays all configured database connections with their client type and database name.
List Tables
# List tables in default connection
node ace list:tables
# List tables in specific connection
node ace list:tables --name=mysql
This command shows all tables in the specified database connection. It supports multiple database clients:
- PostgreSQL - Uses
information_schema.tables - MySQL - Uses
information_schema.tables - SQLite - Uses
sqlite_master - MSSQL - Uses
sys.tables
Supported Database Clients
The package supports the following database clients:
- PostgreSQL (
pg,postgres,postgresql) - MySQL (
mysql,mysql2) - SQLite (
sqlite,sqlite3,better-sqlite3) - Microsoft SQL Server (
mssql)
Requirements
- AdonisJS Core:
^6.12.1 - AdonisJS Lucid:
^20.6.0 || ^21.0.0
License
MIT License - see LICENSE file for details.
Author
Jeremy Chaufourier - jeremy@chaufourier.fr