kitloong / laravel-migrations-generator
从现有数据库生成Laravel迁移
Requires
- php: ^8.1
- ext-pdo: *
- illuminate/support: ^10.43|^11.0
Requires (Dev)
- barryvdh/laravel-ide-helper: ^2.0|^3.0
- friendsofphp/php-cs-fixer: ^3.1
- larastan/larastan: ^1.0|^2.0
- mockery/mockery: ^1.0
- orchestra/testbench: ^8.0|^9.0
- phpmd/phpmd: ^2.10
- slevomat/coding-standard: ^8.0
- squizlabs/php_codesniffer: ^3.5
- 7.x-dev
- v7.0.5
- v7.0.4
- v7.0.3
- v7.0.2
- v7.0.1
- v7.0.0
- 6.x-dev
- v6.11.1
- v6.11.0
- v6.10.0
- v6.9.1
- v6.9.0
- v6.8.2
- v6.8.1
- v6.8.0
- v6.7.1
- v6.7.0
- v6.6.3
- v6.6.2
- v6.6.1
- v6.6.0
- v6.5.1
- v6.5.0
- v6.4.3
- v6.4.2
- v6.4.1
- v6.4.0
- v6.3.2
- v6.3.1
- v6.3.0
- v6.2.1
- v6.2.0
- v6.1.0
- v6.0.0
- 5.x-dev
- v5.2.2
- v5.2.1
- v5.2.0
- v5.1.2
- v5.1.1
- v5.1.0
- v5.0.1
- v5.0.0
- 4.x-dev
- v4.5.1
- v4.5.0
- 4.4.2
- 4.4.1
- 4.4.0
- 4.3.2
- 4.3.1
- 4.3.0
- 4.2.0
- 4.1.0
- 4.0.2
- 4.0.1
- 4.0.0
- 3.x-dev
- 3.1.1
- 3.0
- dev-feature/update
- dev-main
- dev-feature/php84
This package is auto-updated.
Last update: 2024-09-09 13:01:06 UTC
README
从现有数据库生成Laravel迁移,包括索引和外键!
此包是基于https://github.com/Xethron/migrations-generator的修改版本,已更新以支持Laravel 5.6及以上版本,并增加了其他功能。
支持的数据库
Laravel Migrations Generator支持所有五个Laravel官方支持的数据库
- MariaDB
- MySQL
- PostgreSQL
- SQL Server
- SQLite
版本兼容性
安装
建议通过composer安装此包
composer require --dev kitloong/laravel-migrations-generator
Laravel设置
Laravel将自动为您注册服务提供者。
Lumen设置
展开
Lumen中不可用自动发现,您需要在bootstrap/app.php
中进行一些修改。
启用门面
取消注释以下行。
$app->withFacades();
注册提供者
将以下行添加到注册服务提供者
部分。
$app->register(\KitLoong\MigrationsGenerator\MigrationsGeneratorServiceProvider::class);
使用方法
要生成数据库的迁移,您需要在Laravel的配置中设置数据库(config/database.php
)。
要为所有表创建迁移,请运行
php artisan migrate:generate
您可以使用以下方式指定您希望生成的表
php artisan migrate:generate --tables="table1,table2,table3,table4,table5"
您还可以通过以下方式忽略表
php artisan migrate:generate --ignore="table3,table4,table5"
Laravel Migrations Generator将首先生成所有表、列和索引,然后设置所有外键约束。
因此,请确保包含所有外键中列出的表,以便在创建外键时它们是存在的。
如果您不是使用默认连接,可以使用以下方式指定连接名称
php artisan migrate:generate --connection="connection_name"
压缩迁移
默认情况下,生成器将为每个表生成多个迁移文件。
您可以使用以下方式将所有迁移压缩到一个文件中
php artisan migrate:generate --squash
选项
运行php artisan help migrate:generate
以获取选项列表。
SQLite修改外键
生成器首先生成所有表,然后向现有表添加外键。
然而,SQLite仅在创建表时支持外键,而不是在修改表时。_add_foreign_keys_迁移仍然会被生成,但如果迁移到SQLite类型数据库,则会被省略。
用户定义类型列
生成器将识别架构中的用户定义类型,然后以以下方式生成迁移
public function up() { Schema::create('table', function (Blueprint $table) { ... }); DB::statement("ALTER TABLE table ADD column custom_type NOT NULL"); }
请注意,新的column
总是添加到创建的table
的末尾,这意味着迁移中生成的列的顺序将与架构中的顺序不同。
支持用户定义类型的数据库
- PostgreSQL
- SQL Server
感谢
感谢Bernhard Breytenbach的出色工作。此包基于https://github.com/Xethron/migrations-generator。
贡献者
许可协议
Laravel Migrations Generator是开源软件,许可协议为MIT许可证