macromindonline / laravel-migrations-generator
从现有数据库生成Laravel迁移
Requires
- php: >=5.4.0
- doctrine/dbal: ~2.4
- illuminate/support: >=4.1
- xethron/laravel-4-generators: ~3.1.0
Requires (Dev)
- illuminate/cache: >=4.1.0
- illuminate/console: >=4.1.0
- mockery/mockery: >=0.9.0
- phpunit/phpunit: >=4.0.0
README
从现有数据库生成Laravel迁移,包括索引和外键!
升级到Laravel 5.4
请注意,Laravel 4生成器的编辑已被移动到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/generators3.0.3分叉的,并已准备好用于Laravel5.0。Jeffrey Way已停止对Laravel 5的支持,因此其他artisan generate:命令可能没有与5.0兼容。调查artisan make:命令的替代方案,为Laravel做出贡献以扩展生成支持,或修复它并向jamisonvalenta/feature/laravel-five-stable提交PR。
Laravel 4安装
运行以下composer命令
composer require --dev "xethron/migrations-generator:~1.3.0"
接下来,添加以下服务提供者
'Way\Generators\GeneratorsServiceProvider', 'Xethron\MigrationsGenerator\MigrationsGeneratorServiceProvider',
这样就设置好了。要检查它是否正常工作,运行php artisan,并查找命令migrate:generate
用法
要从数据库生成迁移,您需要将数据库配置在Laravel的Config中。
运行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的变更日志
2016年11月20日:v2.0.0
- 支持Laravel 5
2016年11月20日:v1.3.0
- 添加了--defaultIndexNames和--defaultFKNames选项,以使用Laravel的默认生成的名称
- 支持--no-interaction
- 迁移表字段注释
- 如果它不是默认的,则将连接添加到迁移中
- 错误修复
- --ignore没有忽略列表中的第一个表
- 从索引名称中删除反引号#17
- 删除外键使用了不正确的键名#34
- 从迁移中删除表前缀
- 转义表名称和参数
- 将JSON列映射为文本
- 布尔默认值为空字符串
2015年7月:v1.2.2
- 支持Laravel 4.2
- 支持命名外键
- 修复了--ignore选项的错误
2015年5月:v1.2.1
- 修复了字符字段显示为 varchar 的问题
- 允许十进制、浮点数和双精度数无符号
- 允许在更新/删除外键时级联
16 月 5 日:v1.2.0
- 现在完全支持 enum 字段
- 添加对位字段作为布尔值的支持(Laravel 迁移限制)
10 月 5 日:v1.1.1
- 修复了迁移使用 enum 的表时崩溃的问题
- 添加了测试
- 代码的重大重构
3 月 24 日:v1.1.0
- 能够向迁移表添加条目,这样它们就不会因为已存在而执行。
- 将 Blob 转换为二进制字段
- 小的代码更改
谢谢
感谢 Jeffrey Way 的 Laravel-4-Generators 软件包。本软件包在很大程度上依赖于他的工作。
贡献者
Bernhard Breytenbach (@BBreyten)
许可证
Laravel 迁移生成器是开源软件,许可协议为 MIT 许可协议