Redmine upgrade 3.3.2 -> 4.4.1
Redmine upgrade 3.3.2 -> 4.4.1
MySQL8を検証のために導入したらRedmineが動かなくなってしまった。
その流れでRedmineをバージョンアップしたので作業メモ
Ruby
2.3.0以降が必要とのこと。
$ rbenv --version rbenv 0.4.0-192-g825de5d $ rbenv versions * system (set by /usr/local/rbenv/version) 2.2.3 $ ruby --version ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]
rbenvの更新
$ rbenv --version rbenv 0.4.0-192-g825de5d $ cd /usr/local/rbenv/ $ sudo git pull $ rbenv --version rbenv 1.1.2-30-gc879cb0 $ cd plugins/ruby-build/ $ rbenv install --version ruby-build 20151028-11-gbd22205 $ sudo git pull $ rbenv install --version ruby-build 20200401-9-g3ef704e
Ruby
$ sudo rbenv install 2.6.6 Downloading ruby-2.6.6.tar.bz2... -> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.6.tar.bz2 Installing ruby-2.6.6... Installed ruby-2.6.6 to /usr/local/rbenv/versions/2.6.6 $ rbenv versions * system (set by /usr/local/rbenv/version) 2.2.3 2.6.6
DBバックアップ
mysqldump -uroot -p redmine --databases --single-transaction --order-by-primary --quick --quote-names > redmine.sql.20200502.gz
解凍
$ cd /PATH/TO/redmine ### 古いソースに上書きさせる感じ $ sudo cp -Rp redmine-3.3.2 redmine-4.1.1 $ sudo -u redmine:redmine tar -zxvf ~/local/src/redmine-4.1.1.tar.gz
外部ライブラリ取得
$ cd redmine-4.1.1 $ rbenv local 2.2.3 $ sudo rbenv local 2.6.6 $ rbenv local 2.6.6 $ export RAILS_ENV=production $ sudo bundle update
DBマイグレーション
$ sudo bundle exec rake db:migrate $ sudo bundle exec rake tmp:clear
unicorn設定
/etc/unicorn/redmine.conf
--- redmine.conf.20200502 2017-02-17 11:37:00.608028010 +0900 +++ redmine.conf 2020-05-02 06:56:24.813072793 +0900 @@ -2 +2 @@ -RAILS_ROOT=/var/www/vhosts/redmine.studiopoppy.com/redmine-3.3.2 +RAILS_ROOT=/var/www/vhosts/redmine.studiopoppy.com/redmine-4.1.1
起動
unicorn
$ sudo service unicorn start /var/www/vhosts/redmine.studiopoppy.com/redmine-4.1.1: /etc/init.d/unicorn: line 37: kill: (3193) - No such process Starting $ ps aux | grep [u]nicorn root 4485 14.8 13.8 439292 141088 ? Sl 06:59 0:04 unicorn_rails master -c config/unicorn.rb -E production -D root 4488 0.0 13.3 440316 136540 ? Sl 06:59 0:00 unicorn_rails worker[0] -c config/unicorn.rb -E production -D root 4490 0.0 13.3 440316 136540 ? Sl 06:59 0:00 unicorn_rails worker[1] -c config/unicorn.rb -E production -D
nginx
$ sudo service nginx start
プラグイン更新
テーマ更新
$ cd public/themes/redmine-theme-gitmike/ $ sudo -u redmine git pull
多段SSH
PC --(pubkey)--> 踏み台(bastion) --(password)--> リモート(remote1, remote2)
# 踏み台 Host bastion Hostname bastion.exapmle.com User pen PreferredAuthentications publickey IdentityFile ~/.ssh/bastion.id_rsa IdentitiesOnly yes # 踏み台の先 Host remote1 remote2 User www PreferredAuthentications password ProxyCommand ssh -W %h:%p bastion Host remote1 Hostname remote1.example.com Host remote2 Hostname remote2.example.com
cmd.exe からネットワーク設定
業務でノートPCを使っていて、固定IPアドレスだったり、DHCPだったり、現場のルールによって頻繁にネットワーク設定を変更しなければならない。
手間なのでバッチファイル化しておくといい。
固定IPアドレスの場合
netsh interface ipv4 set address "Wi-Fi" static 192.168.1.100 255.255.255.0 192.168.1.10 netsh interface ipv4 set dns "Wi-Fi" static 192.168.1.10 primary
DHCPの場合
netsh interface ipv4 set address "Wi-Fi" dhcp netsh interface ipv4 set dns "Wi-Fi" dhcp
インタフェイス名はこれで調べられる
C:\work>netsh interface show interface
Admin State State Type Interface Name
-------------------------------------------------------------------------
有効 接続 専用 VirtualBox Host-Only Network #4
有効 接続 専用 VirtualBox Host-Only Network #5
有効 接続 専用 VirtualBox Host-Only Network #6
有効 接続 専用 イーサネット
有効 接続 専用 vEthernet (DockerNAT)
有効 切断 専用 Wi-Fi
有効 接続 専用 vEthernet (Default Switch)
イマドキは netsh
コマンドではなく、PowerShell を使ってやるのが主流かもしれない。
これは昔ながらの(Windows2000くらい?)方法だけどメモ。
phpunit/dbunit のフォーク
phpunit8 で動くようにこそこそ手直しをしていたのだけど (iamapen/dbunit)
すでに先人がいるのを発見した。
とくに kornrunner/dbunit の方がリリースタグも打っていて丁寧。
オリジナルが 4.0 で開発停止だから、バージョンは 4.1 として、self.version で replace されている。
phpunit8 だけでなく、phpunit7 への後方互換も持たせている模様。
packagistにも登録されている(kornrunner/dbunit) ので、こちらを使った方がよさそう。
「本気でメンテしていくつもりがないならフォークはダメよ」という注意書きを読んで私は登録を断念した。