Files
galaxy/scripts/manage_db.py
T
2024-05-22 14:57:53 -04:00

49 lines
1.3 KiB
Python

"""
This script should not be used directly. It is intended to be used by the
ansible galaxy and toolshed roles. For managing the database, please consult
manage_db.sh.
"""
import logging
import os.path
import sys
sys.path.insert(1, os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, "lib")))
from galaxy.model.migrations.scripts import LegacyManageDb
logging.basicConfig(level=logging.DEBUG)
log = logging.getLogger(__name__)
def run():
if sys.argv[-1] == "tool_shed":
raise Exception(
"Please use the `manage_toolshed_db.sh` script (or `scripts/toolshed_db.py` if running Ansible)."
)
else:
arg = _get_command_argument()
lmdb = LegacyManageDb()
if arg == "version":
result = lmdb.get_gxy_version()
elif arg == "db_version":
result = lmdb.get_gxy_db_version()
else:
result = lmdb.run_upgrade()
if result:
print(result)
def _get_command_argument():
"""
If last argument is a valid command, pop and return it; otherwise raise exception.
"""
arg = sys.argv[-1]
if arg in ["version", "db_version", "upgrade"]:
return arg
else:
raise Exception("Invalid command argument; should be: 'version', 'db_version', or 'upgrade'")
if __name__ == "__main__":
run()