vkovic/laravel-commando

Collection of handy Laravel artisan commands that most projects needs

v0.2.1 2022-04-10 18:40 UTC

This package is auto-updated.

Last update: 2024-05-10 23:17:14 UTC


README

Build Downloads Stable License

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 uses mysqldump), 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
Database related

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 list command from laravel-commando package

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 model fields command from laravel-commando package

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 exists command from laravel-commando package

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 create command from laravel-commando package

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 drop command from laravel-commando package

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 dump command from laravel-commando package

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 import dump command from laravel-commando package

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

php artisan db summon command from laravel-commando package

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