autn / laravel-schema
The Laravel schema package.
Installs: 3 757
Dependents: 0
Suggesters: 0
Security: 0
Stars: 5
Watchers: 2
Forks: 8
Open Issues: 2
Type:project
Requires
- php: >=5.5.9
- ifsnop/mysqldump-php: >=2.0
- laravel/framework: >=6.16.0
Requires (Dev)
- fzaninotto/faker: >=1.4.0
- laravel/laravel: >=4.0.0
- mockery/mockery: ^1.3.1
- phpunit/phpunit: >=4.0.0
README
1. About
This package generate Mysql database schema from migrations files.
Update Sep 2020: Now support latest Laravel version
2. Installation
Install via composer - edit your composer.json
to require the package.
"require": { // ... "autn/laravel-schema": "*" }
Then run composer update
in your terminal to pull it in.
Once this has finished, you will need to add the command to the commands
array in your app/Console/Kernel.php
config as follows:
// .... protected $commands = [ // ... 'db:schema' => \Autn\Schema\Console\Commands\DumpSql::class, ]; // ...
3. Usage
Notice: The command will refresh your database, the seeding and actual datas will remove. I recommend use --dbconnect
to run with other database.
In root Laravel project, type:
php artisan db:schema
The file will generate to the default databases
path (database/schema.sql
).
You can change this path by add --path
option to the command.
Example:
php artisan db:schema --path=public
The default database connect is mysql
in config/database.php
. You can change the connect by add --dbconnect
to the command.
Example:
php artisan db:schema --path=public --dbconnect=mysql2
Notice: If you add --dbconnect
option, you must add config to config/database.php
.
Example:
// .... 'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'db'), 'username' => env('DB_USERNAME', 'root'), 'password' => env('DB_PASSWORD', 'root'), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'engine' => null, ], 'mysql2' => [ 'driver' => 'mysql', 'host' => 'localhost', 'port' => '3306', 'database' => 'db2', 'username' => 'root', 'password' => 'root', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'engine' => null, ], // ...
There are full options:
--path=: Path to save schema file
--dbconnect=: Database connect to run
--force: Run without confirmation
--method=: Name of method (mysqldump/php). If your server not install mysql (remote to other database server), you must select `php` method
--refresh=: Public migration files and refresh migrations (yes/no)
--type=: Type of file (sql/gzip/bzip2)
4. Changelog
- Version 1.x
Supported mysqldump method
- Version 2.0.x
Supported php method (mysqldump version php)
- Version 2.1.x
Supported compress (type option)
- Version 3.x
Update to support latest Laravel version