1)AtoM2.5.1を2.5.3にアップグレードする
2)アップグレードしたものを消す
3)AtoM2.5.3をインストールしする
入れたり消したり、ちょっとバカみたいですが、皆がわかるようにやってみましょう!
作業のログを記録する方法
今日はTera Termを使って、道場君(AtoMサーバ)にリモートで操作します。Tera Termの「file」 メニューから「log」をクリックして、 logの保存場所とファイル名を指定しておくと今日の作業記録のログが残ります。作業の開始と同時にデスクトップにテキストファイルが生成されます。
では、作業に入りましょう。
まずは、AtoM マニュアルからadministrator manualのUpgradingを読みながら進めます。
https://www.accesstomemory.org/en/docs/2.5/admin-manual/installation/upgrading/#installation-upgrading
以下の3つは飛ばします。
Check minimum requirements
Read the release notes
Make sure the dependencies are updated
ここから本格的なアップグレード作業になりますが、大まかな手順は、
- 既存データのバックアップをとる
- AtoM2.5.3をインストールする
- バックアップを取ったデータをコピーする
- アップグレードを実施する
です。
1.バックアップを作成
AtoMのuploads、downloadsのディレクトリ、そしてMySQLのデータベースが対象です。
#cp コピー元 コピー先
$ cp /usr/share/nginx/atom/uploads/ /tmp/uploads/
$ cp /usr/share/nginx/atom/uploads/ /tmp/downloads/
cpではなくrsync -avでもOKです。rsync=同期は以下を参照。$ cp /usr/share/nginx/atom/uploads/ /tmp/uploads/
$ cp /usr/share/nginx/atom/uploads/ /tmp/downloads/
今回はrsyncを使いました。
#mysqldump -u ユーザー名 -p 古いDB名 > /tmp/database.sql
$ sudo mysql -u atom -p atom > /tmp/database.sql
私たちの場合、ユーザー名=atom、古いDB名=atomだったので、上記の命令文になっとります。$ sudo mysql -u atom -p atom > /tmp/database.sql
この部分は、マニュアルと若干違いますが、解釈が難しかったです。要するの、マニュアルでは、uploadsとdownloadsの二つのディレクトリのバックアップを取るのですが、rsync(二つを同期)または、cp(必要なファイルだけコピー)の二つの方法が紹介されています。cpは指定のものをコピーするだけですので、コピー先にすでにあったものに影響はありません。rsyncは、同期先が同期元と一緒の状態になるので、同期先にだけあったものは削除されます。
また、$ rsync -av /var/www/icaatom_old/uploads/ /usr/share/nginx/atom/uploads/ で、/var/www/icaatom_old/uploads/ は古いAtoMの情報なので、もしこれがすでに/usr/share/nginx/atom/uploads/ であれば、二つは同じになる。
しかし、私たちは、uploadsディレクトリの場合、/tmp/uploadsにバックアップを取っているので、これを/usr/share/nginx/atom/uploads/ に入れればOKです。downloadsも同じです。
2.AtoM2.5.3をインストール
方法は2つありますが、今日はGithubを利用します。
#2.5.xは2.5.3にしないで、このままにする。
$ sudo git clone -b stable/2.5.x http://github.com/artefactual/atom.git /usr/share/nginx/atom
3.バックアップしたデータを移動
# cp コピー元 コピー先
$ cp -r /tmp/uploads/ /usr/share/nginx/atom/uploads/
$ cp /tmp/downloads/ /usr/share/nginx/atom/downloads/
rsync -avでも可。今回はrsyncを使用しました。$ cp /tmp/downloads/ /usr/share/nginx/atom/downloads/
JobsはAtoMを動かすと生成されるものなので、Jobs下にある過去の記録は消します。
$ rm -r /usr/share/nginx/atom/downloads/jobs/*
ちなみに-rでも-Rでも一緒。古いデータベースを消して、新しいデータベースを作成します。
(マニュアルでは、この作業の直前にDBのバックアップを取りますが、バックアップはすべての作業をする前に取っておきましたので、すぐこの作業をはいります。)
$ sudo mysql -u username -p -e 'drop database atom; create database
atom character set utf8 collate utf8_unicode_ci;'
次はバックアップを新しく作成したDBへコピーします。
$ sudo mysql -u atom -p atom < /tmp/database.sql
以下のようにコマンドを打つとDBが作成されたか確認できます。
#llは、「ls -l」と同じ
$ ll /tmp/database.sql
$ ll /tmp/database.sql
4.アップグレードを実施
まず、AtoMのディレクトリへ移動します。
$ cd /usr/share/nginx/atom
そして、アップグレード実施
$ sudo php symfony tools:upgrade-sql
しかし、Database 'propel' does not exist. とういうエラーがでました。
ヒューここまで来るのに、かなりの時間がかかりましたが、結局アップグレードは失敗しました。しかも、今日やろうとしていたことの一つもできていません。そして、既存のAtoMはデータベースをけしたり、ディレクトリを消したりといじったので、めちゃくちゃになりました〜〜ハハハハハハハハハハハハ (^O^;)
もう帰ります~(ToT)
===================
次回は、11月29日(金)です。
皆来てね〜
次回はエラーを直してみるところから続けます。エラーについては、ユーザーフォーラムを参考にしましょう。ここにあるようにconfigファイルを少しいじってみます。
やりたかったことは、ATOMのアップグレードだと思いました。
ブログの
1.(バックアップの作成:backup.sh)
2.(ATOM2.5.3をインストール:rebuild.sh)
3.(バックアップしたデータを移動:upgradeatom.sh)
の2.の段階の詳細が無いので正確ではないのですが、この(2.の)段階で処理を省略した部分があったのではないでしょうか?
2.でATOMのセットアップを一旦完了する必要があります。例えばデータベース名や、その持ち主のパスワード等を設定する必要があります。
この設定がなされていると/usr/share/nginx/atom/config/config.php
ファイルが作られ、settings.ymlやpropel.ini等が設定されます。
他にもATOMの初期設定が行われているかもしれません。
もし、2.で設定を完了せずに3.へ進むと指摘されたエラーなると思います。
上記の場合:
1.で保存すべきデータ(ディレクトリー)が/tmpに保存した場合はシステムをリブートするとなくなっているので、以下の手順でやってみてはいかがでしょうか。
(1)ATOMの再構築:参考:rebiuld.sh
(2)WEBでATOMに適当にデータを入力する
(3)バックアップの作成:参考:backup.sh
(4)再びATOMを新規構築:rebiuld.sh
(5)バックアップしたデートの移動:upgradeatom.sh
各スクリプトに書かれていることを理解してください。
なお、ブログ内でcpコマンドとrsyncコマンドが少し説明されていましたが、cpでディレクトリー以下全体をコピーするには、
「cp -r」で再帰的(-r)にコピーする必要があり、UBUNTUでは
チェックなしに上書きコピーされます。