美文网首页
redmine 迁移、升级

redmine 迁移、升级

作者: 偷油考拉 | 来源:发表于2021-12-30 01:55 被阅读0次

    背景

    当前环境 redmine 3.3.3 , ruby 2.3.3 ,Rails 4.2.7.1 , mysql 5.5 。参考官方文档后,目标升级到 redmine 4.2。

    当前redmine稳定版本 - 2021年12月

    Redmine version Supported Ruby versions Rails version used
    trunk (>= r20913) Ruby 2.5, 2.6, 2.7, 3.0 Rails 6.1
    4.2 Ruby 2.4, 2.5, 2.6, 2.71 Rails 5.2
    4.1 Ruby 2.3, 2.4, 2.5, 2.6 Rails 5.2

    1 Redmine 4.2 不支持 Ruby 2.7.0 and 2.7.1。直接使用 Ruby 2.7.2 及更高版本。

    2 Redmine 4.0.6 之前支持 Ruby >= 2.2.2。 Redmine 4.0.6 及更高版本不支持 Ruby 2.2 。

    重要注意事项:

    • Ruby 社区已经终结对 Ruby 2.5 及更早版本的支持。参见官方消息: 2.2, 2.3, 2.4, 2.5.
    • Redmine 不支持 JRuby 因为 activerecord-jdbc-adapter and loofah 不支持 Rails 4.2 及更新的版本。

    数据库支持 MySQL 5.5 和 5.7。5.6 和 更高版本,以及MariaDB 有问题。 (#19344, #19395, #17460).

    Redmine 版本
    建议大部分的用户安装正经版本。Redmine 每6个月发布一个新版本,这些版本是稳定好用的正经版本。不推荐使用 trunk 版本,除非你在 Ruby 和 Rails 上好厉害。

    升级参考文档

    RedmineUpgrade - Redmine
    RedmineInstall - Redmine

    一、 备份

    RedmineInstall - Redmine
    RedmineBackupRestore - Redmine
    Redmine备份包含如下:
    * 数据 (存储在redmine数据库)
    * 附件 (存储在Redmine安装时设置的 files directory )

    /usr/bin/mysqldump -u <username> -p<password> -h <hostname> <redmine_database> > /path/to/backup/db/redmine.sql
    
    二、检查依赖
    三、升级
    1. 下载
      可以下载稳定版发行包,也可以svn checkout。这里选择下载。
      下载后,解压。配置正确的属组关系。赋予 files, log and tmp 目录 写权限。

    2. 数据库配置文件
      拷贝数据库配置文件 config/database.yml 到新的配置目录 config
      如果运行Redmine >= 1.4 with mysql and ruby1.9,变更数据库驱动为mysql2

    3. 基础配置文件
      拷贝配置文件 config/configuration.yml 到新的配置目录 config
      如果升级的版本早于1.2.0,拷贝config/email.ym内的邮件配置到config/configuration.yml

    4. files 目录
      拷贝 files 目录内容到新安装目录(该目录包含所有的上传文件)

    5. 插件
      plugins目录拷贝你的自定义插件 folders 到新的plugins目录。
      确保只复制后来安装的,而不是初始化Redmine安装捆绑在一起的插件。

    6. 安装依赖的gems

    bundle install --without development test
    

    如果系统上没有安装 ImageMagick ,需要跳过 rmagick gem 安装,如下:

    bundle install --without development test rmagick
    

    只有在数据库配置文件中指定的adapters需要的 gems 才需要安装(eg. config/database.yml配置使用了'mysql2' adapter,那么只需要安装mysql2 gem)。当变更config/database.yml使用其他database adapters,需要重新运行 bundle install

    如果你需要加载一些不是Redmine core需要的gems,你可以在根目录下创建文件Gemfile.local。它会在执行 bundle install 的时候自动被加载。

    1. 更新密钥
      如果是从Redmine 2.x 或更老的版本升级,删除如下文件:
      • config/initializers/secret_token.rb

    然后创建新的 secret ,在应用目录执行如下命令:

    bundle exec rake generate_secret_token
    

    或者,可以将该 secret 存储在 config/secrets.yml
    http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#config-secrets-yml

    1. 主题
      检查public/themes目录,看看安装了哪些主题。可以拷贝过去,但是最好检查下有没有更新的版本。
      非常重要:config/settings.yml文件不能被旧版本覆盖。

    四、更新数据库

    该步骤会变更数据库的内容。
    在新的redmine目录下,migrate数据库:

    bundle exec rake db:migrate RAILS_ENV=production 
    

    如果安装了插件,也需要运行数据库migrations:

    bundle exec rake redmine:plugins:migrate RAILS_ENV=production
    
    五、Clean up
    1. 清空缓存
    bundle exec rake tmp:cache:clear RAILS_ENV=production
    
    1. 重启服务 (e.g. puma, thin, passenger)

    2. 检查 "Admin -> Roles & permissions" 权限,以及新特性。

    升级过程

    一、备份

    快照、镜像、数据文件复制、数据库备份

    mysqldump -h localhost -u root -proot@1qaz redmine > /opt/redmine.sql
    
    二、环境准备
    1. 安装ruby 2.7.5
    #安装依赖
    yum install openssl-devel  gcc gcc-c++ gdbm gdbm-devel  readline readline-devel 
    #编译ruby
    mkdir -p /usr/local/ruby
    wget https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.5.tar.gz
    tar xzvf ruby-2.7.5.tar.gz
    cd ruby-2.7.5/
    ./configure --prefix=/usr/local/ruby 
    make
    make install
    #配置环境变量
    echo "PATH=$PATH:/usr/local/ruby/bin" >> /etc/profile.d/ruby.sh
    

    退出ssh terminal,重新连接加载PATH环境变量

    1. 安装rails
    #更换gem源
    gem sources --add http://mirrors.aliyun.com/rubygems/ --remove https://rubygems.org/
    
    #检索当前gem默认的rails版本
    gem list '^rails$' --remote
    
    #列出可用版本
    gem list '^rails$' --remote --all
    
    #安装指定版本 rails 5.2.6
    gem install rails -v 5.2.6
    
    1. 下载 redmine stable release 4.2.3 ,解压到/opt目录下
    wget --no-check-certificate https://www.redmine.org/releases/redmine-4.2.3.tar.gz
    
    1. 创建redmine账户,id 1000 (redmine默认解压用户 uid 1000 gid 1000)
    三、数据库、文件迁移

    创建数据库redmine,设置字符集 utf8mb4。低于mysql 5.5.2的版本,使用utf8。
    这里原来使用的utf8,所以只能设置utf8咯~

    在新数据库导入备份

    mysql -h 10.96.99.9 -u redmine -p redmine < cdb-rpdivrul_backup_20211216165351.sql
    

    将原来的redmine附件目录迁移到新位置,这里设置为/lvmdata/redmine/files

    四、配置迁移
    1. 数据库配置文件
      拷贝数据库配置文件 config/database.yml 到新的配置目录 config 。
    1. 基础配置文件
      拷贝配置文件 config/configuration.yml 到新的配置目录 config 。
    • 修改附件配置

    • 修改邮箱配置,改成smtp

    production:
     email_delivery:
        delivery_method: :smtp
        smtp_settings:
          address: 'smtp.partner.outlook.cn'
          port: 587
          domain: 'smtp.partner.outlook.cn'
          authentication: :login
          user_name: 'user@xxx.com'
          password: 'password'
    
    1. 插件
      同步插件目录

    2. 安装gems依赖(以root执行)
      首先,安装mysql5.7驱动

    #安装mysql 5.7 的客户端和Lib包,否则mysql2安装会因找不到对应Lib文件报错
    yum install mysql-community-client mysql-community-devel -y
    

    修改Gemfile里面的source

    #source 'https://rubygems.org'
    source 'http://mirrors.aliyun.com/rubygems'
    

    在redmine目录下,执行

    bundle install --without development test
    
    1. 更新密钥
    bundle exec rake generate_secret_token
    
    1. 主题

    2. 更新数据库

    bundle exec rake db:migrate RAILS_ENV=production 
    bundle exec rake redmine:plugins:migrate RAILS_ENV=production
    
    1. 清空缓存
    bundle exec rake tmp:cache:clear RAILS_ENV=production
    

    启动服务

    以redmine用户,进入redmine目录下,启动服务

    nohup bundle exec rails server webrick -e production -b 127.0.0.1 -p 3000 &
    

    配置反向代理

    配置nginx.repo

    [nginx-stable]
    name=nginx stable repo
    baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
    gpgcheck=1
    enabled=1
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true
    
    [nginx-mainline]
    name=nginx mainline repo
    baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
    gpgcheck=1
    enabled=0
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true
    

    安装nginx,配置文件

    upstream redmine {
        server 127.0.0.1:3000;
    }
    
    server {
        listen       80;
        root /var/www/redmine/public;
    
        location / {
                try_files $uri @redmine;
        }
    
        location @redmine {
                proxy_set_header  X-Forwarded-For $remote_addr;
                proxy_pass http://redmine;
        }
    }
    

    老服务器配置redirect

    在nginx的conf.d/下面添加 redirect.conf,如下:

    server {
        listen       3000;
        rewrite ^/(.*) http://redmine.xxx.com redirect;
    }
    

    相关文章

      网友评论

          本文标题:redmine 迁移、升级

          本文链接:https://www.haomeiwen.com/subject/azgefrtx.html