avto-dev / data-migrations-laravel
Laravel应用程序中的数据迁移包
v2.6.0
2024-05-31 11:43 UTC
Requires
- php: ^8.1
- ext-pdo: *
- illuminate/config: ~10.0 || ~11.0
- illuminate/console: ~10.0 || ~11.0
- illuminate/contracts: ~10.0 || ~11.0
- illuminate/database: ~10.0 || ~11.0
- illuminate/filesystem: ~10.0 || ~11.0
- illuminate/support: ~10.0 || ~11.0
- nesbot/carbon: ^2.63.0
- symfony/console: ~6.0 || ~7.0
Requires (Dev)
- ext-pdo_sqlite: *
- ext-sqlite3: *
- ext-zlib: *
- laravel/laravel: ~10.0 || ~11.0
- mockery/mockery: ^1.6.5
- phpstan/phpstan: ^1.10.66
- phpunit/phpunit: ^10.5
Suggests
- ext-zlib: PHP ZLib extension for a working with compressed (gzip-ed) files
README
数据库数据迁移为Laravel
本包向您的Laravel应用程序添加数据库数据迁移功能。
安装
使用以下命令通过composer安装此包
$ composer require avto-dev/data-migrations-laravel "^2.4"
需要已安装
composer
(如何安装composer)。
您需要修复包的主要版本。
发布配置文件,通过它可以重写存储迁移数据数据库中的表名、连接名以及其他设置
$ php ./artisan vendor:publish --provider="AvtoDev\\DataMigrationsLaravel\\ServiceProvider"
之后,根据您的需要编辑文件 ./config/data-migrations.php
并执行以下命令完成安装:
$ php ./artisan data-migrate:install
使用方法
本包解决的问题是在Laravel中缺少内置的迁移“实战”数据到应用程序中的机制(seeds
是填充初始假数据的机制,而数据库迁移负责方案等,但不是数据)。
为了更好地了解本包的工作机制,让我们考虑以下情况 - 您的应用程序使用2个连接到不同数据库(default
和second_db
),并且需要在每个数据库中现有的表中添加一些数据。
为此,您需要执行2个命令
$ ./artisan make:data-migration "Add some data into first table" $ ./artisan make:data-migration --connection="second_db" "Add some data into second table"
执行后,将创建2个文件
./storage/data_migrations/2018_01_01_022000_add_some_data_into_first_table.sql
./storage/data_migrations/second_db/2018_01_01_022001_add_some_data_into_second_table.sql
您可以在这两个文件中填写SQL命令,执行所需的insert操作等(记住,从理念上讲,正确地使用它们仅用于数据操作)。
之后,您只需要执行
$ ./artisan data-migrate
该命令将搜索./storage/data_migrations
目录下所有文件(除了以点开头的文件),如果在其表中未发现其执行记录,将尝试执行它们(路径可以在配置文件中重写)。
特点
使用本包时,应了解以下特点
- 如果在数据迁移文件目录
./storage/data_migrations
中创建一个新的目录,并在其中放置迁移文件 - 则该目录的名称将被用作数据库连接名(在文件./config/database.php
中描述),用于应用该目录中包含的迁移; - 使用实现
ExecutorContract
接口的特殊类来应用迁移。您可以在配置文件中指定其完整名称以创建自己的类; - 迁移可以通过
gzip
(gzip file.sql
)进行打包。如果已安装php扩展zlib
,则它们将在运行时解压,前提是迁移文件的名称以.gz
结尾; - 迁移没有回滚(rollback)机制。
Artisan命令
安装本包后,您将获得以下命令
测试
对于包测试,我们使用phpunit
框架和docker-ce
+ docker-compose
作为开发环境。因此,在克隆存储库后,只需在终端中输入以下命令即可
$ make build $ make latest # or 'make lowest' $ make test
更改日志
更改日志可以在此处找到。
支持
如果您发现任何包错误,请在当前仓库中 提交一个issue。
许可证
这是开源软件,许可协议为MIT许可证。