ProjectDatabaseUpdate.php 1.7 KB
<?php
/**
 * Created by PhpStorm.
 * User: zhl
 * Date: 2023/4/19
 * Time: 15:04
 */
namespace App\Console\Commands;

use App\Models\Project;
use App\Services\ProjectServer;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;

/**
 * Class ProjectDatabaseUpdate
 * @package App\Console\Commands
 */
class ProjectDatabaseUpdate extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'project:database_update';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = '项目数据库更新';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * @return bool
     */
    public function handle()
    {
        #TODO 未处理更新 更新对象(base, project) 更新内容
        return true;
    }

    /**
     * 主库内容更新
     * @param $sql
     * @return array
     */
    public function baseUpdate($sql)
    {
        return DB::select($sql);
    }

    /**
     * 客户数据表更新
     * @param $sql
     * @return bool
     */
    public function projectDatabaseUpdate($sql)
    {
        $project = Project::get();
        foreach ($project as $val) {
            ProjectServer::useProject($val->id);
            DB::connection('custom_mysql')->select($sql);
        }
        return true;
    }

    /**
     * 指定项目数据库更新
     * @param $project_id
     * @param $sql
     */
    public function appointProjectUpdate($project_id, $sql)
    {
        ProjectServer::useProject($project_id);
        DB::connection('custom_mysql')->select($sql);
    }
}