| #!/usr/bin/env -S bash -e |
| |
| # Copyright 2019 The Go Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style |
| # license that can be found in the LICENSE file. |
| |
| source devtools/lib.sh || { echo "Are you at repo root?"; exit 1; } |
| |
| usage() { |
| cat <<EOUSAGE |
| Usage: $0 [up|down|force|version] {#}" |
| EOUSAGE |
| } |
| |
| database_user="postgres" |
| if [[ $GO_DISCOVERY_DATABASE_USER != "" ]]; then |
| database_user=$GO_DISCOVERY_DATABASE_USER |
| fi |
| database_password="" |
| if [[ $GO_DISCOVERY_DATABASE_PASSWORD != "" ]]; then |
| database_password=$GO_DISCOVERY_DATABASE_PASSWORD |
| fi |
| database_host="localhost" |
| if [[ $GO_DISCOVERY_DATABASE_HOST != "" ]]; then |
| database_host=$GO_DISCOVERY_DATABASE_HOST |
| fi |
| database_name='discovery-db' |
| if [[ $GO_DISCOVERY_DATABASE_NAME != "" ]]; then |
| database_name=$GO_DISCOVERY_DATABASE_NAME |
| fi |
| ssl_mode='disable' |
| if [[ $GO_DISCOVERY_DATABASE_SSL != "" ]]; then |
| ssl_mode=$GO_DISCOVERY_DATABASE_SSL |
| fi |
| |
| # Redirect stderr to stdout because migrate outputs to stderr, and we want |
| # to be able to use ordinary output redirection. |
| case "$1" in |
| up|down|force|version) |
| migrate \ |
| -source file:migrations \ |
| -database "postgresql://$database_user:$database_password@$database_host:5432/$database_name?sslmode=$ssl_mode" \ |
| "$@" 2>&1 |
| ;; |
| *) |
| usage |
| exit 1 |
| ;; |
| esac |