version 0.9.xからversion 1.0.0への移行方法


はじめに

ここでは、SKIP0.9系(0.9.0もしくは0.9.1)から、1.0.0への移行方法について説明します。
移行の方針は、
  1. 稼動している0.9系環境とは、別に1.0系環境を作ります
  2. 0.9系環境から1.0系環境へと、反映します。
  3. 移行するデータは 、基本コピーもしくは手動での変更で行うため、0.9系環境を残すことができます(※MySQLデータベースを除く)
とします。


バックアップ

  1. 稼働している0.9系のWebサーバを停止します。
  2. MySQLデータベースは、必ずバックアップを取ってください。
  3. ※0.9系環境で運用しているモードとconfig/database.ymlの設定より、バックアップ対象を確認してください。


事前準備

  1. 公式サイトから skip-1.0.0.tar.gzをダウンロードします。
  2. 0.9系とは別のディレクトリに解凍しておきます。これを1.0系環境とします。
  3. 1.0系環境のRAILS_ROOTで、作業を行うものとします。
  4. 必要なgemsをインストールします。(※既にインストール済みの場合は不要)
             $ sudo gem install gettext
             $ sudo gem install fastercsv
             $ sudo gem install ruby-openid
             $ sudo gem install rails --version 2.1.2
             $ sudo gem install mysql


設定ファイルを移行する

設定ファイルの構成の説明

0.9系では、
  •     config/custom_riteral.yml
  •     config/searchapps.yml
  •     config/environment.rb
  •     config/environments/production.rb
という4ファイルに分散していました。
1.0.0では、
  •     config/initial_settings.yml : 運用開始前に、設定します。設定後は、基本変更しないで下さい。管理機能からも修正が出来ません。
  •   config/settings.yml : 運用開始後に、管理機能から設定できます。画面上からデフォルトにいつでも戻すことができます。(※設定ファイル上の値が、デフォルトになります。)
という2ファイルに集約しました。
この構成の違いを踏まえつつ、以下の作業を実施して下さい。

初期設定ファイルをコピー

initial_settings.ymlを、サンプルからコピーして作成します。

    $ cp config/initial_settings.yml.sample config/initial_settings.yml

初期設定ファイルを変更する

0.9系での設定ファイルより、1.0系での設定ファイルに設定値を反映します。
0.9系での設定ファイル内のキー項目により、対応方法が異なります。
下の2表を参照して、各項目毎に変更してください。
(各項目の詳細な設定方法については、設定ファイル内のコメントもしくはマニュアルを参照してください)
  • 0.9系での設定ファイルを、編集せずに運用していた場合、ここでの変更は不要です。
  • 0.9系での設定ファイルを、編集したか判断がつかない場合、No.8のみ確認して下さい。他は、そのままの設定で使って頂いて構いません。

<SKIP0.9系の設定ファイル内キー項目と、initial_settings.ymlの対応表> ※対応列の記号は、下の対応方法表を参照。
 No  0.9系での設定ファイル  0.9系での設定ファイル内のキー項目  1.0系でのconfig/initial_setting.ymlのキー項目  対応
 1   config/custom_riteral.rb   initial_anntena
  initial_antenna  C
 2   config/custom_riteral.rb   not_blank_link_re   not_blank_link_re  A
 3   config/environment.rb   config.action_controller_sessionのsecret  sessionのsecret  A
 4   config/environment.rb   config.action_controller_sessionのsession_key  sessionのsession_key  A
 5   config/environment.rb   FULL_TEXT_SEARCH_SETTING   full_text_search_setting  A
 6   config/environment.rb   MAX_SHARE_FILE_SIZE   max_share_file_size  A
 7   config/environment.rb   PASSWORD_EDIT_SETTING   password_edit_setting  A
 8   config/environment.rb   SHA1_DIGEST_KEY   sha1_digest_key  B
 9   config/environment.rb   SSL_SETTING   ssl_setting  A
 10
  config/environment.rb   NICKNAME_USE_SETTING   username_use_setting  A
 11   config/environments/production.rb   ANTENNA_DEFAULT_GROUP   antenna_default_group  C
 12   config/environments/production.rb   ENV['BATCH_LOG_PATH']   batch_log_path  A
 13   config/environments/production.rb   ESTRAIER_URL   estraier_url  A
 14   config/environments/production.rb   ENV['IMAGE_PATH']   image_path  D
 15   config/environments/production.rb   ENV['PROXY_URL']   proxy_url  A
 16   config/environments/production.rb   ActionMailer::Base.raise_delivery_errors   raise_delivery_errors  A
 17   config/environments/production.rb   SECRET_KEY   secret_key  A
 18   config/environments/production.rb   ENV['SHARE_FILE_PATH']   shafe_file_path  D
 19   config/environments/production.rb   USER_CODE_FORMAT_REGEX   user_code_format_regex  A
 20   config/environments/production.rb   productionの全項目   search_appsの全項目  A

<対応方法>
 対応  方法  補足
 A
 0.9と1.0で同じ場合、そのままで構いません。必要に応じて設定して下さい。  
 B  0.9と1.0で同じ場合、そのままで構いません。0.9と1.0で必ず同じにして下さい。  
 C  0.9では必須でしたが、1.0では必須では無くなりました。
1.0のデフォルトそのままで構いません。必要に応じて変更して下さい。
 
 D  0.9から1.0で、デフォルトを変更しました。パスの記述に#{RAILS_ROOT}が不要になりました。
1.0のデフォルトそのままで構いません。必要に応じて変更して下さい。
 以降の説明では、1.0系のデフォルトを利用する前提で説明します。


ブログ/掲示版の添付画像を移行する

ブログ/掲示版の添付画像をコピーします。
[移行元] SKIP0.9系のconfig/environments/production.rbのENV['IMAGE_PATH']の設定値
[移行先] SKIP1.0.0のconfig/initial_settings.ymlのimage_pathの設定値
となるように、ディレクトリごとコピーして下さい。
例えば、SKIP0.9系もSKIP1.0.0もデフォルト設定のままの場合は以下のようになります。

    $ cp -R #{SKIP0.9系のRAILS_ROOT}/tmp/images #{SKIP1.0.0のRAILS_ROOT}/tmp/image_file_path


共有ファイルを移行する

共有ファイルをコピーします。
[移行元] SKIP0.9系のconfig/environments/production.rbのENV['SHARE_FILE_PATH']の設定値
[移行先] SKIP1.0.0のconfig/initial_settings.ymlのshare_file_pathの設定値
となるようにディレクトリごとコピーして下さい。
例えば、SKIP0.9系もSKIP1.0.0もデフォルト設定のままの場合は以下のようになります。

    $ cp -R #{SKIP0.9系のRAILS_ROOT}/tmp/share_files #{SKIP1.0.0のRAILS_ROOT}/tmp/share_file_path

データベースを移行する

DB設定ファイルをコピー

SKIP0.9系のディレクトリから、DBの設定ファイルをコピーします(変更しません)。

    $ cp #{SKIP 0.9系のインストール先}/config/database.yml  #{SKIP1.0.0のRAILS_ROOT}/config/database.yml

テーブル定義を変更する

コマンド実行する前に、MySQLのバックアップを取得しておいて下さい。

    $ RAILS_ENV=production rake db:migrate


管理者ユーザを登録する

1.0.0より、「管理者ユーザ」という役割が出来ました。
設定・管理機能を使えるユーザであり、システム上必ず1人存在するようにします。
0.9系だと管理者ユーザは存在しないので、管理者ユーザを新たに登録します。

初期設定ファイルを修正

管理者ユーザ作成用URLを生成するために、config/initial_settings.ymlのhost_and_port及びprotocolを設定します。
稼動していた0.9系環境のホスト名、ポート、及びプロトコルを指定して下さい。

ワンタイムURLを生成する。

    $ ruby lib/create_new_admin_url.rb --code

初期管理者ユーザを作成するためのワンタイムURLが、コンソール上に表示されます。

初期管理者ユーザを登録する

webサーバを起動して下さい。
ワンタイムURLに、ブラウザでアクセスして、ユーザ登録して下さい。
※0.9系環境で使っていたユーザを管理者にするには、この初期管理者ユーザでログインし、設定・管理機能より管理者権限を与えて下さい。


動作確認

  • 管理者ユーザで、ログインして、マイページが表示できる
  • 管理者ユーザ以外の0.9系で使っていたユーザで、ログインし、マイページが表示できる
この2点が確認できれば、移行は一旦完了です。
あとは、運用しながら、設定・管理画面から変更できます。


その他カスタマイズした部分を移行する

管理者ユーザでログインして、設定・管理画面よりカスタマイズが行えます。
画面内のメッセージ、利用約款、ロゴ、などが、画面上より変更できます。

詳細については、マニュアルを参照下さい。(※準備中です)