orkhanahmadov/content-migrations

此包已被弃用且不再维护。未建议替代包。

Laravel的内容迁移包

1.1.1 2020-10-05 15:16 UTC

This package is auto-updated.

Last update: 2023-03-05 21:13:25 UTC


README

Latest Stable Version Latest Unstable Version Total Downloads License

Build Status Test Coverage Maintainability Quality Score StyleCI

该包简化了将基于内容迁移与Laravel迁移分开的操作。

为什么?

有时使用迁移来管理数据库表中的内容非常有用,可以自动化所有环境中的内容更新过程。比如添加新的翻译或更新产品。

但使用Laravel本身的迁移来达到这个目的也有一些缺点

  • Laravel的迁移并不适用于内容管理,它是为数据库结构更改而设计的。
  • 随着时间的推移,在众多迁移文件中管理和查找基于内容的迁移变得越来越困难。
  • Laravel 8最近引入的“迁移压缩”功能仅复制数据库结构的最后状态。这意味着如果您有基于内容的迁移,您需要找到一种方法在空数据库中再次迁移它们。

Laravel的种子器非常适合管理数据库中的内容,但它们也有一些缺点

  • 它们不如迁移自动化,您需要分别运行和跟踪每一个
  • 如果您的数据库为空,很难甚至几乎不可能知道要运行的种子器的顺序

此包旨在通过拥有独立于常规Laravel迁移的专用基于内容迁移来解决这些问题。

要求

  • PHP 7.2或更高版本
  • Laravel 6或更高版本

安装

您可以通过composer安装此包

composer require orkhanahmadov/content-migrations

用法

要创建基于内容的迁移,请运行make:content-migration artisan命令并传递迁移名称

php artisan make:content-migration add_new_translations

此命令将在您的应用程序的database/content-migrations文件夹内生成基于时间戳的迁移。

生成的迁移将只有一个up()方法,您可以使用此方法在数据库中插入/更新/删除内容。

要迁移您的基于内容的迁移,请运行

php artisan content-migrate

此命令的行为与Laravel自身的php artisan migrate命令相同,但此命令将在content_migrations表中跟踪已处理的迁移,与Laravel的migrations表分开。

测试

composer test

变更日志

请参阅CHANGELOG以获取有关最近更改的更多信息。

贡献

请参阅CONTRIBUTING以获取详细信息。

安全

如果您发现任何与安全相关的问题,请通过电子邮件发送到 orkhan@fastmail.com,而不是使用问题跟踪器。

致谢

许可协议

MIT 许可协议(MIT)。请参阅 许可文件 获取更多信息。