romanzipp / laravel-migration-generator
Laravel 迁移文件生成器
0.0.18
2023-02-15 12:40 UTC
Requires
- php: ^7.2|^8.0
- ext-json: *
- doctrine/dbal: ^2.8
- illuminate/console: ^5.5|^6.0|^7.0|^8.0|^9.0|^10.0
- illuminate/support: ^5.5|^6.0|^7.0|^8.0|^9.0|^10.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- mockery/mockery: ^1.3.2
- orchestra/testbench: >=3.8
- phpstan/phpstan: ^0.12.99|^1.0
- phpunit/phpunit: ^8.0|^9.0
- romanzipp/php-cs-fixer-config: ^3.0
README
⚠️ 正在开发中 ⚠️
从现有数据库生成 Laravel 迁移文件。
安装
composer require romanzipp/laravel-migration-generator
如果你使用 Laravel 5.5+,你已经完成了,否则继续。
将服务提供者添加到你的 app.php
配置文件中
romanzipp\MigrationGenerator\Providers\MigrationGeneratorProvider::class,
配置
将配置复制到配置文件夹
$ php artisan vendor:publish --provider="romanzipp\MigrationGenerator\Providers\MigrationGeneratorProvider"
用法
php artisan mg:generate {--connection=}
你将看到以当前时间和日期为前缀的多种新的迁移文件。
注意:此包无法猜测迁移的创建顺序。如果你在你的数据库中创建了一些外键,请确保根据这些关系重新排序迁移文件。
支持的数据库
- MySQL
- MariaDB
- SQLite (数据类型信息)
功能
- 表
- 列
- 列修饰符(可空、默认值、...)
- 索引
- 外键
测试
以下矩阵有以下测试。
- PHP
- 7.2
- 7.3
- 7.4
- 8.0
- 8.1
- 8.2
- 数据库
- SQLite
- MySQL
- MariaDB
- Composer 依赖版本
- 最新版
- 最低版
SQLite
./vendor/bin/phpunit
MySQL / MariaDB
需要一个运行的 MySQL / MariaDB 服务器
./vendor/bin/phpunit -c phpunit.mysql.xml
提供数据库环境变量
DB_HOST=127.0.0.1 DB_USERNAME=user DB_PASSWORD=secret ./vendor/bin/phpunit -c phpunit.mysql.xml
已知问题
- MariaDB:MySQL 的
JSON
数据类型不受支持,因为 Doctrine/DBAL 将其解释为Doctrine\DBAL\Types\TextType
- MySQL:Doctrine/DBAL 无法区分 TEXT、LONGTEXT、MEDIUMTEXT