Today I am gonna show how to switch database from postgres to sqlite3 in rails application.
- Update Gemfile
gem 'sqlite3', '~> 1.3', '>= 1.3.3'
- Open Dockerfile and install sqlite3 package
FROM ruby:3.0.0
LABEL maintainer="Radin <radin@instedd.org>"
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - && \
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
apt-get update -qq && \
apt-get install -y vim nodejs sqlite3 libsqlite3-dev yarn && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN mkdir /app
WORKDIR /app
COPY Gemfile* package.json yarn.lock /app/
RUN gem install bundler -v 2.1.4 && \
bundle install --jobs 20
COPY . /app
- Update docker-compose.yml
version: '3'
volumes:
bundle:
db:
services:
db:
image: nouchka/sqlite3:latest
volumes:
- db:/root/db
stdin_open: true
tty: true
web: &rails
build:
context: .
dockerfile: Dockerfile
command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -b '0.0.0.0'"
volumes:
- .:/app
- bundle:/usr/local/bundle
- ./node_modules:/app/node_modules
tmpfs: /app/tmp
depends_on:
- db
env_file: app.env
tty: true
stdin_open: true
ports:
- "3000:3000"
- And finally, Update config/database.yml
default: &default
adapter: sqlite3
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
development:
<<: *default
database: db/mydb_development.sqlite3
test:
<<: *default
database: db/mydb_test.sqlite3
Cheer!
Top comments (0)