diff --git a/lib/galaxy/dependencies/__init__.py b/lib/galaxy/dependencies/__init__.py index 102d40c0ca2b..639b653362c9 100644 --- a/lib/galaxy/dependencies/__init__.py +++ b/lib/galaxy/dependencies/__init__.py @@ -66,7 +66,7 @@ def check(self, name): except Exception: return False - def check_psycopg2(self): + def check_psycopg2_binary(self): return self.config["database_connection"].startswith("postgres") def check_mysql_python(self): diff --git a/lib/galaxy/dependencies/conditional-requirements.txt b/lib/galaxy/dependencies/conditional-requirements.txt index 2a7bc1e49b96..b4f5afd93096 100644 --- a/lib/galaxy/dependencies/conditional-requirements.txt +++ b/lib/galaxy/dependencies/conditional-requirements.txt @@ -1,5 +1,5 @@ # These dependencies are only required when certain config options are set -psycopg2==2.7.3 +psycopg2-binary==2.7.4 WebError==0.10.3 Pygments==2.2.0 python-openid diff --git a/scripts/common_startup.sh b/scripts/common_startup.sh index a123df666c1c..47eb7bbad20d 100755 --- a/scripts/common_startup.sh +++ b/scripts/common_startup.sh @@ -186,7 +186,13 @@ fi if [ $FETCH_WHEELS -eq 1 ]; then pip install $requirement_args --index-url "${GALAXY_WHEELS_INDEX_URL}" --extra-index-url "${PYPI_INDEX_URL}" GALAXY_CONDITIONAL_DEPENDENCIES=$(PYTHONPATH=lib python -c "from __future__ import print_function; import galaxy.dependencies; print('\n'.join(galaxy.dependencies.optional('$GALAXY_CONFIG_FILE')))") - [ -z "$GALAXY_CONDITIONAL_DEPENDENCIES" ] || echo "$GALAXY_CONDITIONAL_DEPENDENCIES" | pip install -r /dev/stdin --index-url "${GALAXY_WHEELS_INDEX_URL}" --extra-index-url "${PYPI_INDEX_URL}" + if [ -n "$GALAXY_CONDITIONAL_DEPENDENCIES" ]; then + if pip list --format=columns | grep "psycopg2[\(\ ]*2.7.3" > /dev/null; then + echo "An older version of psycopg2 (non-binary, version 2.7.3) has been detected. Galaxy now uses psycopg2-binary, which will be installed after removing psycopg2." + pip uninstall -y psycopg2==2.7.3 + fi + echo "$GALAXY_CONDITIONAL_DEPENDENCIES" | pip install -r /dev/stdin --index-url "${GALAXY_WHEELS_INDEX_URL}" --extra-index-url "${PYPI_INDEX_URL}" + fi fi # Check client build state.