File: debci-migrate

package info (click to toggle)
debci 3.13
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,656 kB
  • sloc: ruby: 6,516; sh: 2,437; javascript: 100; makefile: 92; perl: 11
file content (40 lines) | stat: -rwxr-xr-x 1,125 bytes parent folder | download | duplicates (4)
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"