From d55979334dcefdb11626220000bec97ade09df07 Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Mon, 28 Jul 2025 23:21:17 +0200 Subject: Fixed #36531 -- Added forkserver support to parallel test runner. --- django/db/backends/sqlite3/creation.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'django/db/backends/sqlite3') diff --git a/django/db/backends/sqlite3/creation.py b/django/db/backends/sqlite3/creation.py index 802e8b8357..8a07e0c417 100644 --- a/django/db/backends/sqlite3/creation.py +++ b/django/db/backends/sqlite3/creation.py @@ -62,7 +62,7 @@ class DatabaseCreation(BaseDatabaseCreation): start_method = multiprocessing.get_start_method() if start_method == "fork": return orig_settings_dict - if start_method == "spawn": + if start_method in {"forkserver", "spawn"}: return { **orig_settings_dict, "NAME": f"{self.connection.alias}_{suffix}.sqlite3", @@ -99,9 +99,9 @@ class DatabaseCreation(BaseDatabaseCreation): self.log("Got an error cloning the test database: %s" % e) sys.exit(2) # Forking automatically makes a copy of an in-memory database. - # Spawn requires migrating to disk which will be re-opened in - # setup_worker_connection. - elif multiprocessing.get_start_method() == "spawn": + # Forkserver and spawn require migrating to disk which will be + # re-opened in setup_worker_connection. + elif multiprocessing.get_start_method() in {"forkserver", "spawn"}: ondisk_db = sqlite3.connect(target_database_name, uri=True) self.connection.connection.backup(ondisk_db) ondisk_db.close() @@ -137,7 +137,7 @@ class DatabaseCreation(BaseDatabaseCreation): # Update settings_dict in place. self.connection.settings_dict.update(settings_dict) self.connection.close() - elif start_method == "spawn": + elif start_method in {"forkserver", "spawn"}: alias = self.connection.alias connection_str = ( f"file:memorydb_{alias}_{_worker_id}?mode=memory&cache=shared" -- cgit v1.3