vkovic / laravel-commando
Collection of handy Laravel artisan commands that most projects needs
Installs: 29 117
Dependents: 0
Suggesters: 0
Security: 0
Stars: 60
Watchers: 2
Forks: 10
Open Issues: 7
Requires
- php: ^7.3|^8.0
Requires (Dev)
- laravel/framework: 8.*
- orchestra/database: 6.*
- orchestra/testbench: 6.*
- phpunit/phpunit: ^9.3.3
README
Collection of handy Laravel artisan
commands that most projects needs
Handy artisan
commands that may find place in most of the Laravel projects regardless of the project type.
How often you wanted to perform some basic tasks like create or drop database, dump database or load from .sql
dump, or to see which fields (and field types) are present in your models? Continue reading and I promise to easy this, and many more tasks to you 🍻
Compatibility
The package is compatible with Laravel versions 5.5
, 5.6
, 5.7
, 5.8
, 6.x
, 7.x
and 8.x
.
Because some commands rely on raw console commands (like
db:dump
which usesmysqldump
), currently only MySql database and Linux environments are supported. Package is designed to easily support multiple OS-es and database types, and it should be easy implementation, so if anyone is interested to help, please feel free to contribute.
Installation
Install the package via composer:
If your're using Laravel 8, run:
composer require vkovic/laravel-commando
If your're using Laravel prior version 8, run:
composer require vkovic/laravel-commando "^0.1"
Available commands
Package is in early stage so there is limited number of commands. I'm planning to add more, so if you have some suggestion you can require feature via issues page (click on
Issues -> New issue -> Feature request
)
Model related
- model:list ~ List all application
Models
and related info - model:fields ~ Show single
Model
and useful info
Database related
- db:exist ~ Check for database existance
- db:create ~ Create database
- db:drop ~ Easily drop default or another db
- db:dump ~ Dump database to
.sql
file - db:import-dump ~ Import db from exported
.sql
- db:summon ~ create/drop | migrate | seed
php artisan model:list
Show all models and some basic info.
- Model (model class)
- Table (table used by the model)
- Table count (count of all records in the model related table)
- Scope count (count of records with all scopes applied:
$n = SomeModel::count()
- Soft deleted (show how many soft deleted items model have)
Usage example
php artisan model:fields <model>
Show model fields info.
- Field (model field / table column)
- Type (db field type)
- Nullable (db value can be null)
- Default (default db value)
- Casts (attribute muttators)
- Guarded (field is not mass assignable)
- Fillable (field is mass assignable)
Arguments:
model
optional: Model to show fields from (e.g."App\User"
). If omitted, list of all models will be shown to choose from.
Usage example
php artisan db:exist <database>
Check if database exists
Arguments:
database
optional: Database name to check. If omitted it'll check for default db (defined in.env
).
Usage example
php artisan db:create <database>
Create database
Arguments:
database
optional: Database to create. If omitted, name from.env
will be used.
Usage example
php artisan db:drop <database>
Drop database
Arguments:
database
optional: Database to drop. If omitted, name from.env
will be used
Usage example
php artisan db:dump <database> <--dir>
Dump database to .sql
file
Arguments:
database
optional: Database to dump. If omitted, name from.env
will be used.
Options:
--dir
: Directory for dump creation. If omitted default filesystem dir will be used.
Usage example
php artisan db:import-dump <database> <--dir>
Import dump from .sql
file
Arguments:
database
optional: Database to import dump to. If omitted, name from.env
will be used.
Options:
--dir
: Directory for dump lookup. If omitted default filesystem dir will be used.
Usage example
php artisan db:summon
Drop default database, than perform migrate followed with the seed.
Useful in early stages of development when we changing models (migrations and seeds) a lot.
Usage example
Contributing
If you plan to modify this Laravel package you should run tests that comes with it.
Easiest way to accomplish this would be with Docker
, docker-compose
and phpunit
.
First, we need to initialize Docker containers (see docker-composer.yaml
for details).
docker-compose up --exit-code-from app
After that, we can run tests and watch the output:
docker-compose run --rm app phpunit