diff --git a/Dockerfile b/Dockerfile index abe1123c25..5db0d1fb33 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,7 +14,7 @@ FROM base AS development-base RUN apk add --no-cache --virtual .build-deps \ build-base postgresql-dev git nodejs yarn && \ apk add --no-cache --virtual .dev-utils \ - bash curl less vim chromium-chromedriver zlib-dev openssl-dev \ + bash curl less vim chromium-chromedriver zlib-dev openssl-dev cmake\ readline-dev yaml-dev sqlite-dev libxml2-dev libxslt-dev libffi-dev vips-dev && \ curl -o /usr/local/bin/wait-for-it https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh && \ chmod +x /usr/local/bin/wait-for-it diff --git a/Dockerfile.ubuntu b/Dockerfile.ubuntu index d6fb889d0b..4d67450b24 100644 --- a/Dockerfile.ubuntu +++ b/Dockerfile.ubuntu @@ -25,7 +25,8 @@ RUN apt-get update && apt-get install -y \ libjemalloc-dev \ libssl-dev \ ca-certificates \ - gnupg + gnupg \ + cmake # Setup ENV variables ENV PATH /usr/local/src/rbenv/shims:/usr/local/src/rbenv/bin:/usr/local/src/nodenv/shims:/usr/local/src/nodenv/bin:$PATH diff --git a/compose.yaml b/compose.yaml index 5572e3e4ef..ebaf7d5514 100644 --- a/compose.yaml +++ b/compose.yaml @@ -38,6 +38,8 @@ services: bash -c "rm -f tmp/pids/server.pid && (bundle check || bundle install) && bundle exec rake db:create && + chmod +x ./script/load_schema.sh && + ./script/load_schema.sh && yarn install && bundle exec foreman start -f Procfile.docker" volumes: diff --git a/script/load_schema.sh b/script/load_schema.sh new file mode 100755 index 0000000000..3cc4b3950b --- /dev/null +++ b/script/load_schema.sh @@ -0,0 +1,15 @@ +#!/bin/bash +set -e + +echo "๐Ÿ” Checking if schema is missing or outdated..." + +# Get the current DB version +DB_VERSION=$(bundle exec rails db:version | grep 'Current version' | awk '{print $NF}') +FILE_VERSION=$(grep 'version:' db/schema.rb | awk '{print $2}') + +if [ -z "$DB_VERSION" ] || [ "$DB_VERSION" != "$FILE_VERSION" ]; then + echo "๐Ÿงพ Schema mismatch detected (DB=$DB_VERSION, File=$FILE_VERSION). Running db:schema:load..." + bundle exec rails db:schema:load +else + echo "โœ… Schema is up to date (version $DB_VERSION)." +fi