【问题标题】:Laravel 5.2 database seeds in packages?包中的 Laravel 5.2 数据库种子?
【发布时间】:2016-07-13 05:21:00
【问题描述】:

我正在创建一个包并希望在其中包含 db 种子。所有这些种子都会将一些新行添加到已经存在的表中。我还想要一个“取消种子”选项来在卸载包时删除这些行。

我不确定该怎么做?最佳做法是什么?

谢谢

【问题讨论】:

  • 认为 Doctrine Migrations 提供了这种类型的功能(以及其他一些功能)。它也应该与 Doctrine ORM 解耦,因此在 Laravel 和 Eloquent 中使用它应该不是问题。 (如果我错了,有人纠正我。)

标签: php laravel laravel-5.2 laravel-seeding


【解决方案1】:

最简单的选项是像往常一样创建一个种子类,并指示用户运行带有--class[=CLASS] 选项的db:seed 命令。

例如,您的包可以包含种子类 MyPackage\Seeds\Install 以添加行,MyPackage\Seeds\Remove 以删除它们。您的软件包的用户可以通过以下方式运行这些种子:

php artisan db:seed --class="MyPackage\Seeds\Install" 
php artisan db:seed --class="MyPackage\Seeds\Remove" 

【讨论】:

    猜你喜欢
    • 2016-04-01
    • 2015-02-04
    • 2014-11-21
    • 2016-07-27
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    • 2017-01-30
    • 1970-01-01
    相关资源
    最近更新 更多