Drop mysql2 support, settle on postgresql

It's enough work to support one database, let's settle on
the defacto Rails default.
This commit is contained in:
Henne Vogelsang
2024-06-06 17:16:02 +02:00
parent f51db484ab
commit b2f0796799
11 changed files with 38 additions and 40 deletions

View File

@@ -1,7 +1,6 @@
.bundle/cache
.git/
coverage/
db/*.sqlite3
Dockerfile
docker-compose.*
log/

View File

@@ -12,6 +12,7 @@ jobs:
runs-on: ubuntu-latest
name: next-rails
env:
OSEM_DB_HOST: localhost
RAILS_ENV: test
strategy:
matrix:
@@ -29,7 +30,6 @@ jobs:
bundler-cache: true
- name: Prepare spec
run: |
rm -f osem_test osem_development
bundle exec rake db:setup --trace
bundle exec bin/rails webdrivers:chromedriver:update
- name: spec/${{ matrix.suite }}
@@ -40,3 +40,15 @@ jobs:
with:
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
coverage-reports: coverage/coverage.xml
services:
postgres:
image: postgres:16-alpine
env:
POSTGRES_PASSWORD: mysecretpassword
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432

View File

@@ -25,6 +25,7 @@ jobs:
runs-on: ubuntu-latest
name: spec
env:
OSEM_DB_HOST: localhost
RAILS_ENV: test
strategy:
matrix:
@@ -37,7 +38,6 @@ jobs:
bundler-cache: true
- name: Prepare spec
run: |
rm -f osem_test osem_development
bundle exec rake db:setup --trace
bundle exec bin/rails webdrivers:chromedriver:update
bundle exec rake factory_bot:lint RAILS_ENV=test
@@ -49,3 +49,15 @@ jobs:
with:
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
coverage-reports: coverage/coverage.xml
services:
postgres:
image: postgres:16-alpine
env:
POSTGRES_PASSWORD: mysecretpassword
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432

2
.gitignore vendored
View File

@@ -1,4 +1,3 @@
/db/test.sqlite3-journal
config/application.rb
config/config.yml
config/secrets.yml
@@ -18,7 +17,6 @@ capybara-*.html
/vendor/bundle
/log/*
/tmp/*
/db/*.sqlite3
/public/system/*
/coverage/
/spec/tmp/*

View File

@@ -1,6 +1,6 @@
# This configuration was generated by
# `rubocop --auto-gen-config`
# on 2024-06-06 14:55:31 UTC using RuboCop version 1.63.5.
# on 2024-06-06 15:22:39 UTC using RuboCop version 1.63.5.
# The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new
@@ -1156,6 +1156,13 @@ Rails/Blank:
- 'app/models/user.rb'
- 'spec/factories/event_schedule.rb'
# Offense count: 68
# Configuration parameters: Database, Include.
# SupportedDatabases: mysql, postgresql
# Include: db/**/*.rb
Rails/BulkChangeTable:
Enabled: false
# Offense count: 1
# This cop supports unsafe autocorrection (--autocorrect-all).
Rails/CompactBlank:

View File

@@ -22,8 +22,7 @@ gem 'puma'
# http://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html#responders
gem 'responders', '~> 3.0'
# as supported databases
gem 'mysql2'
# as database
gem 'pg'
# for tracking data changes

View File

@@ -307,7 +307,6 @@ GEM
multi_xml (0.7.1)
bigdecimal (~> 3.1)
multipart-post (2.4.1)
mysql2 (0.5.6)
net-http (0.4.1)
uri
net-imap (0.4.11)
@@ -663,7 +662,6 @@ DEPENDENCIES
mina
mini_magick
money-rails
mysql2
next_rails
omniauth
omniauth-facebook

View File

@@ -1,14 +1,6 @@
<%
encoding = 'unicode'
if ENV.fetch('OSEM_DB_ADAPTER', nil) == 'mysql2'
encoding = 'utf8'
end
%>
default: &default
adapter: <%= ENV.fetch('OSEM_DB_ADAPTER', 'postgresql') %>
encoding: <%= encoding %>
adapter: 'postgresql'
encoding: 'unicode'
host: <%= ENV.fetch('OSEM_DB_HOST', 'database') %>
port: <%= ENV.fetch('OSEM_DB_PORT', '5432') %>
username: <%= ENV.fetch('OSEM_DB_USER', 'postgres') %>
@@ -21,9 +13,6 @@ development:
<<: *default
database: osem_development
# Warning: The database defined as "test" will be erased and
# re-generated when you run "rake".
# Do not set this db to the same as development or production.
test:
<<: *default
database: osem_test

View File

@@ -2,7 +2,7 @@ version: "2.4"
services:
database:
image: postgres:12-alpine
image: postgres:16-alpine
environment:
PGDATA: /var/lib/postgresql/data/pgdata
POSTGRES_PASSWORD: mysecretpassword

View File

@@ -9,9 +9,6 @@
# bundle exec rake secret
# SECRET_KEY_BASE=12345
# The type of database to use (postgresql, mysql2, sqlite3)
# OSEM_DB_ADAPTER=mysql2
# The name of the host the database runs on
# OSEM_DB_HOST=database

View File

@@ -1,13 +0,0 @@
# frozen_string_literal: true
require 'yaml'
task :dump_db do
yaml = YAML.load_file("config/database.yml")
conf = yaml["production"]
filename = "#{conf["database"]}-#{Time.now.strftime("%Y-%m-%d-%H:%M:%S:%L")}.sql"
if conf["adapter"] == 'mysql2'
system "mysqldump -u #{conf["username"]} --password=#{conf["password"]} -h #{conf["host"]} #{conf["database"]} > ~/#{filename}"
else
puts "Error: This rake task only works for MYSQL"
end
end