Skip to content
Kosuke Tanabe edited this page Aug 16, 2024 · 2 revisions

以下の手順は1.3系以前のものです。1.4系以降のバックアップ手順はBackupを参照してください。

バックアップ

  1. enju_leafを停止します。

    • Dockerの場合
    $ sudo systemctl stop enju_leaf.target
    • VirtualBoxの場合
    $ sudo systemctl stop enju_leaf.target
  2. enju_leafをインストールしたディレクトリをバックアップします。ここでは /home/vagrant/enju ディレクトリにインストールしてあるとします。

    $ cp -a /home/vagrant/enju /another/direcotry/
  3. データベースファイルをバックアップします。

    • SQLite3の場合
      1でとったバックアップに含まれています。データベースのファイルは /home/vagrant/enju/db/production.sqlite3 です。
    • PostgreSQLの場合
      PostgreSQLのデータベースを、pg_dumpを使用してバックアップします。以下の例では、enju_productionデータベースをenju_dump.sqlにバックアップしています。
    $ pg_dump enju_production > enju_dump.sql
    • MySQLの場合
      (TODO)

リストア

  1. バックアップしたファイルをコピーします。ここでは /home/nabeta/enju にリストアするとします。

    $ cp -a /another/direcotry/enju /home/nabeta/
  2. 以下のファイルを必要に応じて変更します。

  • config/database.yml # データベースのホスト名やポートが変わった場合。SQLite3の場合は必要なし
  • config/schedule.rb # Enjuのインストール先ディレクトリ名が変わった場合
  • config/sunspot.yml # Solrの起動ホスト名やポートが変わった場合
  • .env # プロキシサーバのホスト名が変わった場合
  1. データベースをリストアします。
  • SQLite3の場合
    /home/nabeta/enju/db/ 以下に、production.sqlite3ファイルがコピーされていることを確認します。
  • PostgreSQLの場合
    新しくデータベースを作成し、バックアップしたデータベースをリストアします。
$ createdb enju_production
$ psql enju_production -f enju_dump.sql
  • MySQLの場合
    (TODO)
  1. ライブラリをインストールします。
$ gem install bundler
$ bundle install
  1. Webサーバと検索サーバを起動し、検索インデックスを再作成します。
$ bundle exec rake environment sunspot:reindex RAILS_ENV=production

他のサーバへの移行

以下のものを移行する必要があります。

  • データベースファイル
  • アプリケーションファイル(enju_leafをインストールしたディレクトリ)

移行元と移行先のEnjuは同じバージョンを使用するようにしてください。

Clone this wiki locally