Help us understand the problem. What is going on with this article?

Redmineテーマやプラグイン開発環境を構築する (rbenv版)

More than 5 years have passed since last update.

テーマやプラグインが開発したくなったので運用環境で作業せずに開発環境を構築してみたメモ。

RVMからrbenvに切り替えたので http://qiita.com/items/31982ee3de80efa4c31b の書き直し。

前提

ポリシー的にはなるべく簡単に、そして環境を限定的に。

  • Redmine 2.x向け
  • GitでRedmine本体を管理する
  • Redmine本体の開発については対象外
  • 自分のテーマやプラグインは個別のGitリポジトリで管理(submoduleとかは使わない)
  • rbenvを使う
  • gemパッケージはbundlerでプロジェクト内にインストールする
  • データベースはSQLiteを使う

RVM版からの変更点

  • RVMの代わりにrbenvを使う
  • gemsetの代わりにbundler install --pathでRedmineのディレクトリにインストール
    • コマンドを叩くときにbundle execする

rbenvのセットアップ

OS X

OS Xが楽。Homebrew + bashの例

brew update
brew install rbenv
brew install ruby-build
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

Ubuntu

Ubuntuはaptでrbenvは見つかったが古い、そしてruby-buildがない。でもrbenv/ruby-buildともにgitから取得するだけでいいようだ。

git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile
echo 'eval "$(rbenv init -)"' >> ~/.profile

Redmineの実行環境を作る

Redmineの配置

git clone https://github.com/redmine/redmine redmine-dev
cd redmine-dev
git checkout -b develop/2.2.1 2.2.1

Redmineをgitで落として、バージョンのタグからdevelop/{version}という名前のローカルブランチを作って使う。

Rubyのインストール

RedmineのRubyのバージョンを確認する。
http://www.redmine.org/projects/redmine/wiki/RedmineInstall

rbenvをセットアップしておき、適切なRubyのバージョンを以下のようにインストールする。Rubyのインストールを後回しにしたのはrbenv localをRedmineのパスで実行したかったそれ以上の深い理由はなし。

rbenv install 1.9.3-p327
gem install bundler
rbenv rehash

Redmineのセットアップ

Redmine 2.3.1にあげたらGemfileが改良されておりdatabase.ymlのadapterを見て適切なデータベースドライバをインストールするようになり、--without mysqlなどのグループによる除外が機能しなくなる

cp -p config/database.yml.example config/database.yml

でデータベースの構成ファイルを作成して以下のように修正。

config/database.yml
production:
  adapter: sqlite3
  database: db/production.sqlite3
development:
  adapter: sqlite3
  database: db/development.sqlite3
test:
  adapter: sqlite3
  database: db/development.sqlite3

bundlerで依存モジュールを解決する。

rbenv local 1.9.3-p327
bundle install --without development test rmagick mysql postgresql --path vendor/bundle

粛々とセットアップ。

bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:load_default_data
mkdir tmp tmp/pdf public/plugin_assets

Redmineの実行

bundle exec ruby script/rails server webrick -e production

で実行して、 http://localhost:3000/ にアクセス。admin/adminでログインできる。

あとはテーマやプラグインを好き勝手に開発。基本的にRedmine本体の開発はしないのでredmine-dev/.gitはRedmineのバージョンアップ時にブランチを切り替えるだけで特にコミットはせず、自分のテーマやプラグインについてはnew fileで差分が出たままの状態にしておく。

Redmineバージョンアップ時の作業

リポジトリの最新を取得して、新しいバージョンのタグからローカルブランチを切り替えてデータのマイグレーションとかを行う。

ブランチの切り替え

git checkout master
git pull; git pull --tags
git checkout -b develop/x.x.x x.x.x

データの再セットアップ。

bundle install --without development test rmagick mysql postgresql --path vendor/bundle
bundle exec rake db:migrate RAILS_ENV="production"
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
bundle exec rake tmp:cache:clear
bundle exec rake tmp:sessions:clear

.bundle/configに前回のオプションが残っているからbundle installのオプションはいらない気もするけど念のため。

makoto_kw
本当は音楽、動画周りの技術ネタを投稿したい
http://makotokw.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした