diff --git a/Gemfile b/Gemfile index d5dc4384d..315174ff9 100644 --- a/Gemfile +++ b/Gemfile @@ -19,6 +19,9 @@ gem "solid_cache", "~> 1.0" gem "solid_queue", "~> 1.1" gem "sqlite3", ">= 2.0" gem "thruster", require: false +source "https://e95ae463b12de3f204526a44650f6ae0@gems.stanko.io/private" do + gem "beamer-rails" +end # Features gem "bcrypt", "~> 3.1.7" diff --git a/Gemfile.lock b/Gemfile.lock index 86b4776ae..ac0030f9a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -157,6 +157,22 @@ PATH rails (>= 8.1.0.beta1) rails_structured_logging +GEM + remote: https://gems.stanko.io/private/ + specs: + beamer-rails (0.0.6-arm64-darwin) + sqlite3 (>= 2.0) + beamer-rails (0.0.6-arm64-linux) + sqlite3 (>= 2.0) + beamer-rails (0.0.6-x86_64-darwin) + sqlite3 (>= 2.0) + beamer-rails (0.0.6-x86_64-linux) + sqlite3 (>= 2.0) + beamer-rails (0.0.6-x86_64-linux-gnu) + sqlite3 (>= 2.0) + beamer-rails (0.0.6-x86_64-linux-musl) + sqlite3 (>= 2.0) + GEM remote: https://rubygems.org/ specs: @@ -522,7 +538,6 @@ GEM sqlite-vec (0.1.7.alpha.2-arm64-linux) sqlite-vec (0.1.7.alpha.2-x86_64-darwin) sqlite-vec (0.1.7.alpha.2-x86_64-linux) - sqlite-vec (0.1.7.alpha.2-x86_64-mingw32) sqlite3 (2.7.4) mini_portile2 (~> 2.8.0) sqlite3 (2.7.4-arm64-darwin) @@ -614,7 +629,6 @@ PLATFORMS x86_64-linux x86_64-linux-gnu x86_64-linux-musl - x86_64-mingw32 DEPENDENCIES activerecord-tenanted! @@ -622,6 +636,7 @@ DEPENDENCIES autotuner aws-sdk-s3 bcrypt (~> 3.1.7) + beamer-rails! benchmark bootsnap brakeman diff --git a/bin/docker-entrypoint b/bin/docker-entrypoint index 4f8ccb547..f3c243ae0 100755 --- a/bin/docker-entrypoint +++ b/bin/docker-entrypoint @@ -2,7 +2,7 @@ # If running the rails server then create or migrate existing database if [ "${1}" == "./bin/thrust" ] && [ "${2}" == "./bin/rails" ] && [ "${3}" == "server" ]; then - ./bin/rails db:prepare + ./bin/migrate-primary-db fi exec "${@}" diff --git a/bin/migrate-primary-db b/bin/migrate-primary-db new file mode 100755 index 000000000..3f3b0b61f --- /dev/null +++ b/bin/migrate-primary-db @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +beamer is-primary && rails db:prepare diff --git a/config/database.yml b/config/database.yml index 78a8c31fe..b4b295cce 100644 --- a/config/database.yml +++ b/config/database.yml @@ -14,15 +14,13 @@ default: &default development: primary: <<: *default - <% database_path = "storage/tenants/#{Rails.env}/%{tenant}/db/main.sqlite3" %> - <% database_path = "file:#{database_path}?vfs=beamer" if %w[1 true].include?(ENV["BEAMER"]&.downcase) %> - database: <%= database_path %> + adapter: <%= %w[1 true].include?(ENV["BEAMER"]&.downcase) ? "beamer" : "sqlite3" %> + database: storage/tenants/<%= Rails.env %>/%{tenant}/db/main.sqlite3 tenanted: true untenanted: <<: *default - <% database_path = "storage/untenanted/development.sqlite3" %> - <% database_path = "file:#{database_path}?vfs=beamer" if %w[1 true].include?(ENV["BEAMER"]&.downcase) %> - database: <%= database_path %> + adapter: <%= %w[1 true].include?(ENV["BEAMER"]&.downcase) ? "beamer" : "sqlite3" %> + database: storage/untenanted/development.sqlite3 migrations_paths: db/untenanted_migrate cable: <<: *default @@ -53,13 +51,15 @@ test: production: &production primary: <<: *default - database: file:storage/tenants/<%= Rails.env %>/%{tenant}/db/main.sqlite3?vfs=beamer + adapter: beamer + database: storage/tenants/<%= Rails.env %>/%{tenant}/db/main.sqlite3 tenanted: true extensions: - <%= SqliteVec.loadable_path %> untenanted: <<: *default - database: file:storage/untenanted/<%= Rails.env %>.sqlite3?vfs=beamer + adapter: beamer + database: storage/untenanted/<%= Rails.env %>.sqlite3 migrations_paths: db/untenanted_migrate cable: <<: *default