Fix Database not clearing old services when not using multisite

This commit is contained in:
Théophile Diot 2023-09-20 13:00:31 +02:00
parent 8a6e14d8c8
commit d97326656d
No known key found for this signature in database
GPG key ID: 248FEA4BAE400D06

View file

@ -491,33 +491,32 @@ class Database:
if config:
config.pop("DATABASE_URI", None)
db_services = (
session.query(Services)
.with_entities(Services.id, Services.method)
.all()
)
db_ids = [service.id for service in db_services]
services = config.get("SERVER_NAME", [])
if isinstance(services, str):
services = services.split(" ")
if db_services:
missing_ids = [
service.id
for service in db_services
if (service.method == method) and service.id not in services
]
if missing_ids:
# Remove services that are no longer in the list
session.query(Services).filter(
Services.id.in_(missing_ids)
).delete()
if config.get("MULTISITE", "no") == "yes":
global_values = []
db_services = (
session.query(Services)
.with_entities(Services.id, Services.method)
.all()
)
db_ids = [service.id for service in db_services]
services = config.pop("SERVER_NAME", [])
if isinstance(services, str):
services = services.split(" ")
if db_services:
missing_ids = [
service.id
for service in db_services
if (service.method == method) and service.id not in services
]
if missing_ids:
# Remove services that are no longer in the list
session.query(Services).filter(
Services.id.in_(missing_ids)
).delete()
for key, value in deepcopy(config).items():
suffix = 0
original_key = deepcopy(key)