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

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

More than 5 years have passed since last update.

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

rbenv版はhttp://qiita.com/items/909ea8134e5199c3457a

前提

ポリシー的にはなるべく簡単に、そして環境を限定的に。とりあえずUbuntu 12.04でやってるけど*nix系ならほぼ使いまわせそう。

  • Redmine 2.x向け
  • GitでRedmine本体を管理する
  • Redmine本体の開発については対象外
  • 自分のテーマやプラグインは個別のGitリポジトリで管理(submoduleとかは使わない)
  • RVMを使い、Redmine用のgemsetを作る
  • データベースはSQLiteを使う

Redmineの実行環境を作る

Rubyのインストール

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

https://rvm.io/ からRVMをイントールしておく。

Redmineの配置とGemsetの準備

git clone https://github.com/redmine/redmine redmine-dev
cd redmine-dev
git checkout -b develop/2.2.1 2.2.1
rvm --rvmrc --create 1.9.3@redmine

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

でRuby 1.9.3でRedmine用のgemsetである1.9.3@redmineをrvmrcを使ってこのディレクトリでそれを使うようにしている。rvmrcはここを参考。https://rvm.io/workflow/rvmrc/

redmine-devに移動したときに自動的に1.9.3@redmineに切り替えるには/etc/rvmrc または ~/.rvmrcにrvm_project_rvmrc=1を設定しておくといい。

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

粛々とセットアップ。

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

Redmineの実行

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
rake db:migrate RAILS_ENV="production"
rake redmine:plugins:migrate RAILS_ENV=production
rake tmp:cache:clear
rake tmp:sessions:clear
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