vi-kon/laravel-db-exporter
最新稳定版本:v1.0
Composer 安装命令:
composer require vi-kon/laravel-db-exporter
包简介
Database table structure and data exporter to migration and seed files
README 文档
README
This is database table structure and data exporter to migration and seed files for Laravel 5
Table of content
Features
- create migration files from database table structure
- handle foreign keys (watch for recursive foreign keys)
- create model files from database table structure (even foreign keys)
- organize generated models depending on database tabla name to individual namespace and directory structure via regular expressions
- create seed files from database table content
Installation
Base
To composer.json file add following lines:
// to "require" object "vi-kon/laravel-db-exporter": "~1.*"
Or run following command in project root:
composer require vi-kon/laravel-db-exporter
In Laravel 5 project add following lines to app.php:
// to providers array 'ViKon\DbExporter\DbExporterServiceProvider',
Configuration and migration
Installing configuration and migration files simple run:
php artisan vendor:publish --provider="ViKon\DbExporter\DbExporterServiceProvider"
Configuration
Configuration files help set up default values for commands.
return [ /* | -------------------------------------------------------------------------- | Default connection name | -------------------------------------------------------------------------- | Database connection name. Valid connection names are defined in | database.php. If value is null default connection is used. | */ 'connection' => null, /* | -------------------------------------------------------------------------- | Default table prefix | -------------------------------------------------------------------------- | This table prefix is used in generated migration files or in generated | models. | */ 'prefix' => '', /* | -------------------------------------------------------------------------- | Default selected tables | -------------------------------------------------------------------------- | Select specified database tables only. No work with ignore option | together. In commands with --select option can add another tables. | */ 'select' => [], /* | -------------------------------------------------------------------------- | Default ignored tables | -------------------------------------------------------------------------- | Ignore specified database tables. No work with select option together. | In commands with --ignore option can add another tables. | */ 'ignore' => [ 'migrations', ], /* | -------------------------------------------------------------------------- | Model options | -------------------------------------------------------------------------- */ 'model' => [ /* | -------------------------------------------------------------------------- | Default namespace | -------------------------------------------------------------------------- | Namespace for generated models. In command with --namespace option can | overwrite. | */ 'namespace' => 'App\Models', /* | -------------------------------------------------------------------------- | Default path | -------------------------------------------------------------------------- | Generated models destination path. Is relative to projects base path. In | command with --path option can overwrite. | */ 'path' => app_path('Models'), /* | -------------------------------------------------------------------------- | Custom map | -------------------------------------------------------------------------- | Map is useful for organizing generated models to multiple namespaces and | directories. Each map entry is array with following associative keys: | | * tablePattern - regex pattern for selecting tables by name | * namespace - generated models namespace from selected tables | * path - generated models destination path from selected tables | * className - array containing pattern and replacement for preg_match | to generate models class name from table name. If value | is null original table name is used. The result is camel | cased. The subject table name is snake cased | */ 'map' => [ // [ // 'tablePattern' => '.*', // 'namespace' => 'App\Models', // 'path' => 'app/Models', // 'className' => [ // 'pattern' => '', // 'replacement' => '', // ], // ], ], ], /* | -------------------------------------------------------------------------- | Migration options | -------------------------------------------------------------------------- */ 'migration' => [ /* | -------------------------------------------------------------------------- | Default path | -------------------------------------------------------------------------- | Generated migration destination path. Is relative to projects base path. | In command with --path option can overwrite. | */ 'path' => base_path('database/migrations'), ], /* | -------------------------------------------------------------------------- | Seed options | -------------------------------------------------------------------------- */ 'seed' => [ /* | -------------------------------------------------------------------------- | Default path | -------------------------------------------------------------------------- | Generated seed destination path. Is relative to projects base path. | In command with --path option can overwrite. | */ 'path' => base_path('database/seeds'), ], ];
Usages
Note: Generated files may need some auto-formatting.
Creating migration files
The db-exporter:migrate command is used for creating migration files from database. It has several options:
- prefix - database name prefix in migration files
- select - array of selected database table names (if set
ignoreoption is ignored) - ignore - array of ignored database table names
- database - specify database connection name (if option is not set the default connection is used)
- force - force overwriting existing migration files
- path - output destination path relative to project root (default is
{PROJECT ROOT}/database/migrations)
Note: Model path given by migration.path config key have to be writable by PHP to generate models.
The example assumes following database tables:
- users
- groups
- pages with foreign key to user id
Exports all tables from default database:
php artisan db-exporter:migrate
The above command will generate following files into {PROJECT ROOT}/database/migrations directory:
YYYY-MM-DD_000000_create_users_table.php YYYY-MM-DD_000001_create_groups_table.php YYYY-MM-DD_000002_create_pages_table.php
Note: Table names and column names are converted to snake cased.
Creating models
The db-exporter:models command is used for creating models from database. It has several options:
- prefix - database name prefix in migration files
- select - array of selected database table names (if set
ignoreoption is ignored) - ignore - array of ignored database table names
- connection - specify database connection name (if option is not set the default connection is used)
- force - force overwriting existing migration files
- namespace - models namespace (default is
App\Models) - path - output destination path relative to project root (default is
{PROJECT ROOT}/database/migrations)
Note: Some situation foreign methods name can match in models, so manual renaming is needed.
Note: In some cases relation guess (One to One, Many to One, One to Many) can generate same method names in single class.
Note: Model path given by model.path config key have to be writable by PHP to generate models.
Creating models from default database:
php artisan db-exporter:models
Creating seed files
The db-exporter:seed command is used for creating seeds from database data. It has several options:
- prefix - database name prefix in migration files
- select - array of selected database table names (if set
ignoreoption is ignored) - ignore - array of ignored database table names
- connection - specify database connection name (if option is not set the default connection is used)
- force - force overwriting existing migration files
- path - output destination path relative to project root (default is
database/seeds)
Note: Seed path given by seed.path config key have to be writable by PHP to generate seed classes.
Creating seed files from default database:
php artisan db-exporter:seed
License
This package is licensed under the MIT License
统计信息
- 总下载量: 37.61k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 10
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2015-03-18