Die Datenbanktabelle auf Laravel -Test wird von anderen Benutzern zugegriffenPhp

PHP-Programmierer chatten hier
Anonymous
 Die Datenbanktabelle auf Laravel -Test wird von anderen Benutzern zugegriffen

Post by Anonymous »

Ich erstelle derzeit eine Multi-Mieter-Anwendung mit Stancl/Mietschance (jeder Mieter verwendet seine eigene Datenbank) in meiner Laravel-Anwendung.

Code: Select all

Illuminate\Database\QueryException: SQLSTATE[55006]: Object in use: 7 FEHLER:  auf Datenbank »tenant_019949ce« wird von anderen Benutzern zugegriffen
DETAIL:  1 andere Sitzung verwendet die Datenbank. (Connection: tenant_host_connection, SQL: DROP DATABASE "tenant_019949ce")
< /code>
Dies bedeutet, dass die Tabelle von einem anderen Benutzer verwendet wird. Tabellen werden erstellt, wenn ein Mieter erstellt wird und gelöscht werden sollte, wenn ein Mieter gelöscht wird, aber bei der Teardown 
-Methode immer fehlschlägt.

Code: Select all

use Illuminate\Foundation\Testing\TestCase as BaseTestCase;

class TenancyTestCase extends BaseTestCase {

use RefreshDatabase;

private Tenant $tenant;

protected function setUp(): void {
parent::setUp();

Config::set('tenancy.seeder_parameters.--class', TestDatabaseSeeder::class);

$this->setupDefaultTenant();
$this->forceRootUrl();

$this->withoutVite();
}

private function setupDefaultTenant(): void {

$this->tenant = Tenant::factory()->create();
$this->tenant->domains()->save(Domain::factory([
'domain' => 'tenant',
])->make());

tenancy()->initialize($this->tenant);
}

private function forceRootUrl(): void {
$parsed = parse_url(config('app.url'));
$host = $parsed['host'] ?? 'localhost.test';
$port = isset($parsed['port']) ? ':' . $parsed['port'] : '';

URL::forceRootUrl('https://tenant.' . $host . $port);
}

public function tearDown(): void {
tenancy()->end();
$this->tenant->delete();

parent::tearDown();
}
}
Ich konnte noch nicht herausfinden, warum Ideen, wie man dies behebt?>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post