X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/03aade6dd988f91b1037f39754438846c4844cfb..3433f306caf560017377b32adf7a23842ba9ab31:/build/rails-package-scripts/postinst.sh diff --git a/build/rails-package-scripts/postinst.sh b/build/rails-package-scripts/postinst.sh index 6b069957a4..e317f85aaf 100644 --- a/build/rails-package-scripts/postinst.sh +++ b/build/rails-package-scripts/postinst.sh @@ -125,17 +125,17 @@ setup_conffile() { } prepare_database() { - DB_MIGRATE_STATUS=`$COMMAND_PREFIX bundle exec rake db:migrate:status 2>&1 || true` + DB_MIGRATE_STATUS=`$COMMAND_PREFIX bin/rake db:migrate:status 2>&1 || true` if echo "$DB_MIGRATE_STATUS" | grep -qF 'Schema migrations table does not exist yet.'; then # The database exists, but the migrations table doesn't. - run_and_report "Setting up database" $COMMAND_PREFIX bundle exec \ - rake "$RAILSPKG_DATABASE_LOAD_TASK" db:seed + run_and_report "Setting up database" $COMMAND_PREFIX bin/rake \ + "$RAILSPKG_DATABASE_LOAD_TASK" db:seed elif echo "$DB_MIGRATE_STATUS" | grep -q '^database: '; then run_and_report "Running db:migrate" \ - $COMMAND_PREFIX bundle exec rake db:migrate + $COMMAND_PREFIX bin/rake db:migrate elif echo "$DB_MIGRATE_STATUS" | grep -q 'database .* does not exist'; then if ! run_and_report "Running db:setup" \ - $COMMAND_PREFIX bundle exec rake db:setup 2>/dev/null; then + $COMMAND_PREFIX bin/rake db:setup 2>/dev/null; then echo "Warning: unable to set up database." >&2 DATABASE_READY=0 fi @@ -198,12 +198,15 @@ configure_version() { cd "$RELEASE_PATH" export RAILS_ENV=production - if ! $COMMAND_PREFIX bundle --version >/dev/null; then - run_and_report "Installing bundler" $COMMAND_PREFIX gem install bundler --version 1.17.3 + if ! $COMMAND_PREFIX bundle --version >/dev/null 2>&1; then + run_and_report "Installing bundler" $COMMAND_PREFIX gem install bundler --version 2.2.19 --no-document fi + run_and_report "Running bundle config set --local path $SHARED_PATH/vendor_bundle" \ + $COMMAND_PREFIX bin/bundle config set --local path $SHARED_PATH/vendor_bundle + run_and_report "Running bundle install" \ - $COMMAND_PREFIX bundle install --path $SHARED_PATH/vendor_bundle --local --quiet + $COMMAND_PREFIX bin/bundle install --local --quiet echo -n "Ensuring directory and file permissions ..." # Ensure correct ownership of a few files @@ -215,8 +218,11 @@ configure_version() { # Make sure postgres doesn't try to use a pager. export PAGER= case "$RAILSPKG_DATABASE_LOAD_TASK" in - db:schema:load) chown "$WWW_OWNER:" $RELEASE_PATH/db/schema.rb ;; - db:structure:load) chown "$WWW_OWNER:" $RELEASE_PATH/db/structure.sql ;; + # db:structure:load was deprecated in Rails 6.1 and shouldn't be used. + db:schema:load | db:structure:load) + chown "$WWW_OWNER:" $RELEASE_PATH/db/schema.rb || true + chown "$WWW_OWNER:" $RELEASE_PATH/db/structure.sql || true + ;; esac chmod 644 $SHARED_PATH/log/* chmod -R 2775 $RELEASE_PATH/tmp || true @@ -226,17 +232,13 @@ configure_version() { prepare_database fi - # Here, "ARVADOS_CONFIG=none" tells arvados_config.rb not to try - # loading config from /etc: it might not exist on a new install, and - # assets:precompile doesn't depend on config anyway. - run_and_report "Precompiling assets" \ - ARVADOS_CONFIG=none $COMMAND_PREFIX bundle exec rake assets:precompile -q -s 2>/dev/null || true - if [ -e /etc/arvados/config.yml ]; then # warn about config errors (deprecated/removed keys from # previous version, etc) run_and_report "Checking configuration for completeness" \ - $COMMAND_PREFIX bundle exec rake config:check || true + $COMMAND_PREFIX bin/rake config:check || APPLICATION_READY=0 + else + APPLICATION_READY=0 fi chown -R "$WWW_OWNER:" $RELEASE_PATH/tmp