abkrim / db-schema
A fork of thedevsaddam/laravel-schema of Saddam H thedevsaddam@gmail.com with some improvements and maintained
Requires
- php: ^7.2
- ext-json: *
- doctrine/dbal: ^2.9
- laravel/framework: ^6.0
Requires (Dev)
- orchestra/testbench: 4.*
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2025-09-26 03:26:07 UTC
README
This package will help to display database dbSchema information from terminal or save in file
Installation
You can install the package via composer:
composer require --dev abkrim/db-schema
Publish config
php artisan vendor:publish
Or use tag for install
php artisan vendor:publish --tag=config-db-schema
Usage
View or save a connections with version and information of each table
New command for see or show schema and indexes for any connections fo our Laravel project, using Doctrine instead use several wrappers. Only tested with MySQL (not testing phpunit, testing in production) but is possible that work fine with Postgresql, sqlite,...
On this version options for this command are in Laravel mode instead Symfony Model. Check with --help
php artisan db-schema:doctrine-list

See --help for more info
Show Schema information in tabular form
php artisan db-schema:show
Example output: Schema information in tabular form

If you want to see a specific table then pass table name or Namespace\\Model
php artisan db-schema:show --t=tableName or --t=Namespace\\Model

Note: Same condition will be applied for tables list view
Show Schema information in List
php artisan db-schema:list
Example output: Schema information in list

Avaliable Options in show and list:
--t=tableNameor-t tableNameto provide table name or Namespace\Model--c=connectionNameor-c connectionNameto provide connections name
Show Table names and total rows
php artisan db-schema:simple
Example output: Tables name with rows count

Note: You may pass --c=connectionName or -c connectionName to display a specific connections dbSchema info
Show table definition
php artisan db-schema:table --t=tableName or --t=Namespace\\Model
Example output: Table definition with default page and limit

Avaliable Options in table:
--t=tableNameor-t tableNameto provide table name or Namespace\\Model (e.g: --t=App\\User or --t=users).--p=pageNumberor-p PageNumberto provide current page which you want to see--o=orderByor-o orderByto provide orderBy clause against a column (e.g: --o=id:desc or --o=id:asc [default asc]).--l=rowsLimitPerPageor-l rowsLimitPerPageto provide number of rows you want to display (e.g: --l=20).--c=connectionNameor-c connectionNameto provide connections name--w=widthOfTableCellor-w widthOfTableCellto provide character length of cell to show in tables (numeric [default=10]).--s=columnNameto provide the column to display, you can provide comma (,) separated names to display (e.g: --s=name or --s=id,name).
php artisan db-schema:table --t=countries --p=4 --o=id:desc --l=25
Perform raw sql query
php artisan db-schema:query --r="your sql query"
Example output: Query result will be dumped in console

Avaliable Options in query:
--r=yourRawQueryor-r yourRawQueryto provide your raw sql query (e.g: --r="select * from someTable limit 20").--c=connectionNameor-c connectionNameto provide connections name (e.g: --c=mysql or -c sqlite)
Monitor database server
php artisan db-schema:monitor
Example output: Showing the database status

You can pass --i=integerNumber as refresh time interval and --c=ConnectionName as well
php artisan db-schema:monitor --i=3 --c=secondaryDatabase
Testing
composer test
Laravel versions
This package is only tested in Laravel 6.0 (not test at now, but are coming soon). For older versión try use original package
For older versions that do not have auto discover providers you may need to add service provider.
Changelog
Please see CHANGELOG for more information what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email abdelkarim.mateos@castris.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.
Laravel Package Boilerplate
This package was generated using the Laravel Package Boilerplate.