gpt4 book ai didi

php - Laravel : Migrations & Seeding for production data

转载 作者:IT王子 更新时间:2023-10-29 00:56:46 24 4
gpt4 key购买 nike

我的应用程序需要一个预先注册的数据集才能工作。所以我需要在设置应用程序时将它们插入到数据库中。

Laravel提出两种机制:

  • Database migrations :“它们允许团队修改数据库架构并及时了解当前架构状态。”
  • Database seeding :“Laravel 还提供了一种简单的方法,可以使用种子类为您的数据库播种测试数据。”

当我阅读此描述时,这些解决方案似乎都不适用。

一个类似的问题是 asked on stackoverflowanswered .答案建议使用数据库播种器通过检测当前环境来填充数据库:

<?php

class DatabaseSeeder extends Seeder {

public function run()
{
Eloquent::unguard();

if (App::environment() === 'production')
{
$this->call('ProductionSeeder');
}
else
{
$this->call('StagingSeeder');
}
}

}

当然,这个解决方案有效。但我不确定这样做是否正确,因为通过使用播种机插入数据,您将失去迁移机制提供的所有优势(数据库升级、回滚......)

我想知道在这种情况下最佳做法是什么。

最佳答案

Laravel 开发是关于自由的。因此,如果您需要为生产数据库播种并且认为 DatabaseSeeder 是最好的选择,为什么不呢?

好的,seeder 主要用于测试数据,但您会看到一些人像您一样使用它。

我将这种重要的种子视为我迁移的一部分,因为这是我的数据库表中不可缺少的东西,并且每次我部署新版本的应用程序时都会运行 artisan migrate,所以我就这样做

php artisan migrate:make seed_models_table

并在其中创建我的 seedind 东西:

public function up()
{
$models = array(
array('name' => '...'),
);

DB::table('models')->insert($models);
}

关于php - Laravel : Migrations & Seeding for production data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21580088/

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