orkhanahmadov / content-migrations
此包已被弃用且不再维护。未建议替代包。
Laravel的内容迁移包
1.1.1
2020-10-05 15:16 UTC
Requires
- php: ^7.2
- illuminate/contracts: ^6.0|^7.0|^8.0
- illuminate/database: ^6.0|^7.0|^8.0
- illuminate/support: ^6.0|^7.0|^8.0
Requires (Dev)
- orchestra/testbench: ^4.0|^5.0|^6.0
- phpunit/phpunit: ^8.0|^9.0
README
该包简化了将基于内容迁移与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)。请参阅 许可文件 获取更多信息。