#!/usr/bin/env bash set -euo pipefail ROOT="$(cd "$(dirname "$0")/../.." && pwd)" cd "$ROOT" read_env() { grep "^${1}=" .env | cut -d= -f2- | tr -d '\r"' | head -1 } DB_HOST=$(read_env DB_HOST) DB_PORT=$(read_env DB_PORT) DB_DATABASE=$(read_env DB_DATABASE) DB_USERNAME=$(read_env DB_USERNAME) DB_PASSWORD=$(read_env DB_PASSWORD) mysql_cmd() { mysql -h "$DB_HOST" -P "$DB_PORT" -u "$DB_USERNAME" -p"$DB_PASSWORD" "$DB_DATABASE" "$@" } echo "==> 1/5 baseline_migrations.sql" mysql_cmd < database/sql/baseline_migrations.sql echo "==> 2/5 check package migrations in DB" PKG=$(mysql_cmd -N -e "SELECT COUNT(*) FROM migrations WHERE migration IN ( '2019_12_14_000001_create_personal_access_tokens_table', '2021_12_02_065938_create_wallet_moudle_table' );") if [[ "$PKG" != "2" ]]; then echo "ERROR: 2019/2021 not in migrations table. Run: mysql ... < database/sql/fake_package_migrations.sql" exit 1 fi echo "==> 3/5 php artisan migrate:status" php artisan migrate:status echo "==> 4/5 php artisan migrate" php artisan migrate echo "==> 5/5 deploy_settings_const.sql" mysql_cmd < database/sql/deploy_settings_const.sql php artisan migrate:status echo "==> done"