gpt4 book ai didi

laravel - 使用 Laravel 填充生产中的表

转载 作者:行者123 更新时间:2023-12-02 13:46:50 25 4
gpt4 key购买 nike

在 Laravel 中,我们有播种数据的概念,它与模型工厂结合使用,以便填充测试环境的数据。

当我们需要填充生产数据时,我们应该如何进行(在哪里放置代码)?例如,我可能有一个权限表,我需要添加一些默认权限以及模式创建。一段时间后,我可能需要向我的应用程序添加新的权限。这些数据插入是否应该与迁移保持在一起?

我们应该使用什么机制来插入数据?模型还是数据数组?我对数据数组的问题是模型中的任何业务都不会有所帮助:例如:强制转换或关系。

我知道,关于这个主题有两次讨论,但对我来说,解决方案并不能涵盖所有问题:

最佳答案

How should we proceed (where to put the code) when we need to populate data for production?

我们的团队进行了全新的迁移来插入生产种子(与创建表的迁移分开)。这样,如果您将来需要向生产数据添加更多种子,只需进行新的独立迁移即可。

例如,您的第一个迁移可能是 2016_03_05_213904_create_permissions_table.php,然后是您的生产种子:2016_03_05_214014_seed_permissions_table.php

可以将此数据放入与创建表相同的迁移中,但在我看来,迁移的可读性较差,并且可能违反 SRP 。如果您将来需要添加更多种子,您将有两个不同的“标准”(原始迁移中的一组种子,单独的迁移中的另一组)。

回答你的第二个问题:

What mechanism should we use for inserting data?

我总是使用模型的 create() 方法来插入生产种子。这可确保任何正在监听模型创建事件的事件监听器正确触发。正如您所说,创建模型时可能需要触发额外的代码。

<小时/>

关于laravel - 使用 Laravel 填充生产中的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35815601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com