Skip to content

v9 is loading config file from disk #1867

@razvan-p

Description

@razvan-p

Hi! We have a multitenancy app which runs a backup every day. After updating from v8 to v9 we remarked that config is always loaded from config.php file from disk. This way we can't configure dynamically the config options according to each tenant. This is our code for changing the config dynamically which is working in v8, but not in v9:

<?php

namespace App\Tasks;

use Spatie\Multitenancy\Contracts\IsTenant;
use Spatie\Multitenancy\Tasks\SwitchTenantTask;

class SwitchBackupDatabaseTask implements SwitchTenantTask
{
    public function __construct(protected ?array $originalBackupDatabase = null, protected ?string $originalBackupFilenamePrefix = null)
    {
        $this->originalBackupDatabase ??= config('backup.backup.source.databases');
        $this->originalBackupFilenamePrefix ??= config('backup.backup.destination.filename_prefix');
    }

    public function makeCurrent(IsTenant $tenant): void
    {
        config()->set('backup.backup.source.databases', ['tenant']);
        config()->set('backup.backup.destination.filename_prefix', $tenant->database . '-');
    }

    public function forgetCurrent(): void
    {
        config()->set('backup.backup.source.databases', $this->originalBackupDatabase);
        config()->set('backup.backup.destination.filename_prefix', $this->originalBackupFilenamePrefix);
    }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions