update of an outadet approach of the user adding in the current version
This commit is contained in:
+22
-26
@@ -626,38 +626,34 @@ case "$COMMAND" in
|
|||||||
port_to_remove=""
|
port_to_remove=""
|
||||||
|
|
||||||
if [ -n "$APP_CONTAINER" ]; then
|
if [ -n "$APP_CONTAINER" ]; then
|
||||||
# Zuerst die Datenbank via PyMongo hart droppen (Erzwungenes Löschen)
|
# Zuerst die MongoDB-Datenbank via PyMongo hart droppen (Erzwungenes Löschen)
|
||||||
port_to_remove="$(docker exec "$APP_CONTAINER" python3 - "$TENANT_ID" <<'PY'
|
docker exec -i "$APP_CONTAINER" python3 - "$TENANT_ID" << 'EOF' > /dev/null 2>&1
|
||||||
import sys, re
|
import sys
|
||||||
sys.path.insert(0, '/app')
|
import os
|
||||||
sys.path.insert(0, '/app/Web')
|
|
||||||
from tenant import delete_tenant, get_tenant_config
|
|
||||||
from Web.modules.database import settings
|
|
||||||
from pymongo import MongoClient
|
|
||||||
|
|
||||||
tenant_id = sys.argv[1]
|
try:
|
||||||
tenant_cfg = get_tenant_config(tenant_id)
|
import pymongo
|
||||||
port = tenant_cfg.get('port')
|
tenant_id = sys.argv[1]
|
||||||
|
|
||||||
# Datenbanknamen exakt rekonstruieren
|
# MongoDB-URI aus der Umgebung holen oder Standard verwenden
|
||||||
sanitized = "".join(c for c in tenant_id if c.isalnum() or c == "_")
|
mongo_uri = os.environ.get('MONGO_URI', 'mongodb://localhost:27017/')
|
||||||
db_name = f"inventar_{sanitized}"
|
client = pymongo.MongoClient(mongo_uri, serverSelectionTimeoutMS=2000)
|
||||||
|
|
||||||
try:
|
db_name = f"inventar_{tenant_id}"
|
||||||
client = MongoClient(settings.MONGODB_HOST, int(settings.MONGODB_PORT))
|
if db_name in client.list_database_names():
|
||||||
client.drop_database(db_name)
|
client.drop_database(db_name)
|
||||||
print(f"MongoDB database '{db_name}' dropped successfully.", file=sys.stderr)
|
print(f"Dropped database: {db_name}")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Warning: Could not drop database '{db_name}': {e}", file=sys.stderr)
|
print(f"Error dropping database: {e}", file=sys.stderr)
|
||||||
|
EOF
|
||||||
|
|
||||||
if not delete_tenant(tenant_id):
|
# Konfiguration und Port via Host-Funktion bereinigen und Port ermitteln
|
||||||
print(f'Error: failed to delete tenant {tenant_id}', file=sys.stderr)
|
if port_to_remove="$(remove_tenant_port "$TENANT_ID" 2>/dev/null)"; then
|
||||||
sys.exit(1)
|
:
|
||||||
|
else
|
||||||
|
port_to_remove=""
|
||||||
|
fi
|
||||||
|
|
||||||
if port is not None:
|
|
||||||
print(port)
|
|
||||||
PY
|
|
||||||
)"
|
|
||||||
echo "Tenant '$TENANT_ID' database and config removed."
|
echo "Tenant '$TENANT_ID' database and config removed."
|
||||||
else
|
else
|
||||||
echo "Warning: Application container not running. Tenant database may still exist in MongoDB."
|
echo "Warning: Application container not running. Tenant database may still exist in MongoDB."
|
||||||
|
|||||||
Reference in New Issue
Block a user