| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | #!/usr/bin/env bashset -xset -eo pipefailif ! [ -x "$(command -v psql)" ]; then  echo >&2 "Error: `psql` is not installed."  echo >&2 "install using brew: brew install libpq."  echo >&2 "link to /usr/local/bin: brew link --force libpq ail"  exit 1fiif ! [ -x "$(command -v sqlx)" ]; then  echo >&2 "Error: `sqlx` is not installed."  echo >&2 "Use:"  echo >&2 "    cargo install --version=^0.5.7 sqlx-cli --no-default-features --features postgres"  echo >&2 "to install it."  exit 1fiDB_USER="${POSTGRES_USER:=postgres}"DB_PASSWORD="${POSTGRES_PASSWORD:=password}"DB_PORT="${POSTGRES_PORT:=5432}"DB_HOST="${POSTGRES_HOST:=localhost}"DB_NAME="${POSTGRES_DB:=flowy}"if [[ -z "${SKIP_DOCKER}" ]]then  RUNNING_POSTGRES_CONTAINER=$(docker ps --filter 'name=postgres' --format '{{.ID}}')  if [[ -n $RUNNING_POSTGRES_CONTAINER ]]; then    echo >&2 "there is a postgres container already running, kill it with"    echo >&2 "    docker kill ${RUNNING_POSTGRES_CONTAINER}"    exit 1  fi  docker run \      -e POSTGRES_USER=${DB_USER} \      -e POSTGRES_PASSWORD=${DB_PASSWORD} \      -e POSTGRES_DB="${DB_NAME}" \      -p "${DB_PORT}":5432 \      -d \      --name "flowy_postgres_$(date '+%s')" \      postgres -N 1000fi# Keep pinging Postgres until it's ready to accept commandsuntil PGPASSWORD="${DB_PASSWORD}" psql -h "${DB_HOST}" -U "${DB_USER}" -p "${DB_PORT}" -d "postgres" -c '\q'; do  >&2 echo "Postgres is still unavailable - sleeping"  sleep 1done>&2 echo "Postgres is up and running on port ${DB_PORT} - running migrations now!"export DATABASE_URL=postgres://${DB_USER}:${DB_PASSWORD}@localhost:${DB_PORT}/${DB_NAME}sqlx database createsqlx migrate run>&2 echo "Postgres has been migrated, ready to go!"
 |