forked from enviPath/enviPy
52 lines
1.4 KiB
Python
52 lines
1.4 KiB
Python
from django.apps import apps
|
|
from django.core.management.base import BaseCommand
|
|
|
|
from django.db.models import F, Value
|
|
from django.db.models.functions import Replace
|
|
|
|
|
|
class Command(BaseCommand):
|
|
def add_arguments(self, parser):
|
|
parser.add_argument(
|
|
"--old",
|
|
type=str,
|
|
help="Old Host, most likely https://envipath.org/",
|
|
required=True,
|
|
)
|
|
parser.add_argument(
|
|
"--new",
|
|
type=str,
|
|
help="New Host, most likely http://localhost:8000/",
|
|
required=True,
|
|
)
|
|
|
|
def handle(self, *args, **options):
|
|
MODELS = [
|
|
"User",
|
|
"Group",
|
|
"Package",
|
|
"Compound",
|
|
"CompoundStructure",
|
|
"Pathway",
|
|
"Edge",
|
|
"Node",
|
|
"Reaction",
|
|
"SimpleAmbitRule",
|
|
"SimpleRDKitRule",
|
|
"ParallelRule",
|
|
"SequentialRule",
|
|
"Scenario",
|
|
"Setting",
|
|
"MLRelativeReasoning",
|
|
"RuleBasedRelativeReasoning",
|
|
"EnviFormer",
|
|
"ApplicabilityDomain",
|
|
"EnzymeLink",
|
|
]
|
|
for model in MODELS:
|
|
obj_cls = apps.get_model("epdb", model)
|
|
print(f"Localizing urls for {model}")
|
|
obj_cls.objects.update(
|
|
url=Replace(F("url"), Value(options["old"]), Value(options["new"]))
|
|
)
|