1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
#!/bin/sh
set -eu
usage() {
cat <<EOF
usage: debci migrate [OPTIONS]
$@
EOF
}
debci_base_dir=$(readlink -f $(dirname $(readlink -f $0))/..)
cd $debci_base_dir
. lib/environment.sh
. lib/functions.sh
# fix migration numbering error
ruby -r debci/db -e "ActiveRecord::Base.connection.execute(\"UPDATE schema_migrations SET version = '20200326000000' WHERE version = '202010326000000'\") if ActiveRecord::Base.connection.tables.include?('schema_migrations')"
# migrate relational DB
ruby -r debci/db -e 'Debci::DB.migrate(ENV["DEBCI_MIGRATE_DB_VERSION"]&.to_i)'
current_version=0
if [ -f "$debci_data_basedir/schema_version" ]; then
current_version=$(cat "$debci_data_basedir/schema_version")
fi
migrations_dir=$(readlink -f $0).d
for migration in $(run-parts --list "$migrations_dir"); do
version=$(basename "$migration" | sed 's/[^0-9].*//')
if [ "$version" -gt "$current_version" ]; then
migration_name=$(basename "$migration")
log "ยป $migration_name ..."
"$migration" "$debci_data_basedir"
current_version="$version"
fi
done
echo "$current_version" > "$debci_data_basedir/schema_version"
|