Обновите mysql2 gem до последней версии с помощью rails 4?

#ruby-on-rails-4 #docker-compose #dockerfile #mysql2

#рубин на рельсах-4 #докер-сочинение #докерфайл #mysql2

Вопрос:

я попытался обновить mysql2 gem, но там есть ошибки:

 Gem::LoadError: Specified 'mysql2' for database adapter, but the gem is not loaded. Add `gem 'mysql2'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).  

я должен обновить mysql2 gem до последней версии, потому что мне нужно выполнить миграцию данных из mysql в postgresql, поэтому нам нужно обновить mysql2 gem. также мне нужно сбросить данные базы данных mysql, поэтому мне нужно обновить mysql2 gem до последней версии. если у кого-нибудь есть предложения, как выполнить эту работу, пожалуйста, помогите мне и напишите по адресу: santu.essence@gmail.com

файл docker:

 FROM ruby:2.7.2 SHELL ["/bin/bash", "-c"]  RUN apt-get update -y --force-yes RUN apt-get install libtag1-dev -y --force-yes RUN apt-get install -y curl RUN curl -sL https://deb.nodesource.com/setup_10.x | bash -   amp;amp; apt-get install nodejs -y  # postgresql-client --- postgresql database adapter # RUN apt-get install -y wget sudo pgloader # install ffmpeg # RUN apt-get install checkinstall RUN apt-get update   amp;amp; apt-get install -y git build-essential gcc make yasm autoconf automake cmake libtool libmp3lame-dev pkg-config libunwind-dev zlib1g-dev libssl-dev   amp;amp; apt-get update   amp;amp; apt-get clean RUN apt-get install -y --no-install-recommends libc6-dev libgdiplus wget software-properties-common   amp;amp; wget https://www.ffmpeg.org/releases/ffmpeg-4.0.2.tar.gz   amp;amp; tar -xzf ffmpeg-4.0.2.tar.gz; rm -r ffmpeg-4.0.2.tar.gz   amp;amp; cd ./ffmpeg-4.0.2; ./configure --enable-gpl --enable-libmp3lame --enable-decoder=mjpeg,png --enable-encoder=png --enable-openssl --enable-nonfree   amp;amp; cd ./ffmpeg-4.0.2; make   amp;amp; cd ./ffmpeg-4.0.2; make install   # ffmpeg installation complete  amp;amp; rm -rf /var/lib/apt/lists/*  WORKDIR /usr/src/app # RUN mkdir -p .bundle amp;amp; printf '%sn%sn' '---' 'BUNDLE_WITHOUT: development:test' gt; .bundle/config COPY Gemfile* ./ RUN gem install bundler -v 2.2.28 RUN bundle install COPY . . # ENTRYPOINT ./entrypoint-web.sh  

докер-compose.yml:

 version: '3' services:  db:  image: mysql:5.6.45  restart: always  environment:  MYSQL_DATABASE: youspin_development  MYSQL_USER: root  MYSQL_PASSWORD: root  MYSQL_ROOT_PASSWORD: root  volumes:  - ./tmp/db:/var/lib/mysql  ports:  - 3306:3306   redis:  image: redis  ports:  - 6379:6379  # volumes: # ./tmp/db: # external: true   worker:  # set the path for Dockerfile  build: .  command: bash -c "rm -f /usr/src/app/tmp/pids/resque.pid amp;amp; rake app:worker-start "  environment:  RAILS_ENV: development  REDIS_URL: redis://redis:6379/0  volumes:  - .:/usr/src/app  depends_on:  - db  - redis   web:  # set the path for Dockerfile  build: .  command: bash -c "rm -f /usr/src/app/tmp/pids/server.pid amp;amp; rake assets:clobber app:init app:serve amp;amp; bundle exec rails s -p 3000 -b '0.0.0.0'"  environment:  RAILS_ENV: development  REDIS_URL: redis://redis:6379/0  volumes:  - .:/usr/src/app  ports:  - 3000:3000  depends_on:  - db  - worker  - redis   nginx:  image: nginx  volumes:  - ./config/nginx.dev.conf:/etc/nginx/conf.d/default.conf  - ./public:/var/www/youspin/public  ports:  - 80:80  environment:  - NGINX_PORT=80  links:  - web  

Комментарии:

1. Я вижу, ты пользуешься докером. Пожалуйста, обновите docker-compose.yml и Dockerfile . Как вы загружаете драгоценные камни? Через том?

2. docker compose build должно помочь, если вы это сделаете bundle install Dockerfile . Если вы используете тома docker compose run --rm --no-deps app bundle install , они также должны работать.

3. я загружаю драгоценные камни через файл docker

4. У вас там есть комплект для установки? Обновите файлы, которые я просил выше, пожалуйста.

5. я могу выполнить установку пакета с помощью dockerfile