knobik/migrations-generator

从现有数据库生成Laravel迁移

v2.0.2 2017-09-19 17:31 UTC

This package is auto-updated.

Last update: 2024-09-12 05:01:28 UTC


README

Build Status Scrutinizer Code Quality Latest Stable Version Total Downloads License

从现有数据库生成Laravel迁移,包括索引和外键!

升级到Laravel 5.4

请注意,Laravel 4 Generator的编辑已经移动到https://github.com/xethron/Laravel-4-Generators.git以更新兼容性。

Laravel 5安装

建议通过composer安装此工具

composer require --dev "xethron/migrations-generator"

在Laravel 5.5中,服务提供者将自动注册。

在框架的旧版本中,编辑config/app.php并在提供者部分添加以下内容

Way\Generators\GeneratorsServiceProvider::class,
Xethron\MigrationsGenerator\MigrationsGeneratorServiceProvider::class,

如果您只想在开发环境中使用此库,可以将以下代码添加到您的app/Providers/AppServiceProvider.php文件中,在register()方法内部

public function register()
{
    if ($this->app->environment() !== 'production') {
        $this->app->register(\Way\Generators\GeneratorsServiceProvider::class);
        $this->app->register(\Xethron\MigrationsGenerator\MigrationsGeneratorServiceProvider::class);
    }
    // ...
}

注意事项

  • 感谢@jamisonvalenta,现在您可以在Laravel 5中生成迁移了!
  • feature/laravel-five-stable是从way/generators 3.0.3分叉的,并且已调整为Laravel 5.0兼容。Jeffrey Way已经停止了对Laravel 5的支持,因此其他artisan generate:命令可能没有调整为兼容5.0。调查artisan make:命令的替代方案,为Laravel贡献以扩展生成支持,或修复问题并提交PR到jamisonvalenta/feature/laravel-five-stable

Laravel 4安装

运行以下composer命令

composer require --dev "xethron/migrations-generator:~1.3.0"

接下来,添加以下服务提供者

'Way\Generators\GeneratorsServiceProvider',
'Xethron\MigrationsGenerator\MigrationsGeneratorServiceProvider',

设置完成。为了确认它是否工作,运行php artisan,并查找命令migrate:generate

用法

要从数据库生成迁移,您需要将数据库设置在Laravel的配置中。

运行php artisan migrate:generate以创建所有表的迁移,或者您可以使用php artisan migrate:generate table1,table2,table3,table4,table5指定要生成的表。您也可以使用--ignore="table3,table4,table5"忽略某些表

Laravel Migrations Generator将首先生成所有表、列和索引,然后设置所有外键约束。因此,请确保包括外键中列出的所有表,以确保在创建外键时它们都存在。

如果您不是使用默认连接,可以指定连接名称,使用--connection="connection_name"

运行php artisan help migrate:generate以获取选项列表。

查看Chung Tran的博客文章,获取快速分步介绍: 在Laravel 4中从现有数据库生成迁移

变更日志

Laravel Migrations Generator的变更日志

20 November 2016: v2.0.0

  • 支持Laravel 5

20 November 2016: v1.3.0

  • 添加选项--defaultIndexNames和--defaultFKNames以使用Laravel的默认生成名称
  • 支持--no-interaction
  • 迁移表字段注释
  • 如果非默认连接,添加连接到迁移
  • 错误修复
    • 使用--ignore时不忽略列表中的第一个表
    • 从索引名称中删除反引号#17
    • 删除使用不正确键名的外键#34
    • 从迁移中删除表前缀
    • 转义表名和参数
    • 将JSON列映射为文本
    • 布尔默认值结果为空字符串

25 July: v1.2.2

  • 支持Laravel 4.2
  • 支持命名外键
  • 修复了--ignore选项的错误

29 May: v1.2.1

  • 修复了char字段显示为varchar的问题
  • 允许decimal、float和double为无符号
  • 允许在更新/删除外键时使用级联

2023年5月16日:v1.2.0版本

  • 现在完全支持枚举字段
  • 支持位字段作为布尔值(Laravel迁移限制)

2023年5月10日:v1.1.1版本

  • 修复使用枚举字段的表迁移时崩溃的问题
  • 添加了测试
  • 代码重构,大幅改进

2023年3月24日:v1.1.0版本

  • 可以在迁移表中添加条目,这样它们就不会被运行,因为它们已经存在。
  • 将Blob转换为二进制字段
  • 细微的代码更改

感谢

感谢Jeffrey Way提供的出色的Laravel-4-Generators包。本包很大程度上依赖于他的工作。

贡献者

Bernhard Breytenbach (@BBreyten)

许可证

Laravel迁移生成器是开源软件,使用MIT许可证MIT许可证