romanzipp/laravel-migration-generator

Laravel 迁移文件生成器

0.0.18 2023-02-15 12:40 UTC

This package is auto-updated.

Last update: 2024-09-15 16:23:35 UTC


README

Latest Stable Version Total Downloads License GitHub Build Status SQLite GitHub Build Status MySQL GitHub Build Status MariaDB

⚠️ 正在开发中 ⚠️

从现有数据库生成 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=}

你将看到以当前时间和日期为前缀的多种新的迁移文件。

注意:此包无法猜测迁移的创建顺序。如果你在你的数据库中创建了一些外键,请确保根据这些关系重新排序迁移文件。

支持的数据库

功能

  • 列修饰符(可空、默认值、...)
  • 索引
  • 外键

测试

以下矩阵有以下测试。

  • 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