初投稿です。はじめまして。
とりあえず、今月初めにHerokuにruby2.0のredmine環境を構築したお話を書いてみようと思います。
背景
redmineのプラグイン、redmine_backlogsを気に入っており、
職場のイントラ内で使用している。ただし、あまりスクラム的な開発はできていない。
そこで、自宅からアクセスでき、色々と試せるredmne環境をつくろうと思い立った。
前置き
- rubyのインストール、devkitのインストール、
bundler Gemのインストールは省略します - Herokuのアカウント作成は省略します
- Heroku Toolbeltをインストールしています
- コンソールはGit Bashを使用しました
- gitについてはまだよく理解できていません。もしかしたら非推奨な手順入っているかもしれないです
- 後々推敲と称して修正します(多分)
手順
heroku上に新規アプリを作成
heroku create app_name
ローカルにredmineを構築
gitからclone
git clone https://github.com/redmine/redmine.git -b 2.5-stable
Gemfileの 末尾 に ruby '2.0.0'
を追記
redmineルートディレクトリで以下のコマンドを実行
bundle install --without development test rmagick
herokuへ上げるための前準備
.gitignoreから以下の行をコメントアウト
/config/configuration.yml
/config/email.yml
/config/initializers/session_store.rb
/config/initializers/secret_token.rb
/public/plugin_assets
/Gemfile.lock
/Gemfile.local
作成したredmineルートディレクトリから、.gitを削除
※多分もっとスマートな方法がある
redmineルートディレクトリで git init
を実行
redmineの設定ファイルを幾つか編集
/config/environment.rbを編集
exit 1
と記述のある行をコメントアウト
Gemfile内の以下をコメントアウト
database_file = File.join(File.dirname(__FILE__), "config/database.yml")
if File.exist?(database_file)
database_config = YAML::load(ERB.new(IO.read(database_file)).result)
adapters = database_config.values.map {|c| c['adapter']}.compact.uniq
if adapters.any?
adapters.each do |adapter|
case adapter
when 'mysql2'
gem "mysql2", "~> 0.3.11", :platforms => [:mri, :mingw, :x64_mingw]
gem "activerecord-jdbcmysql-adapter", :platforms => :jruby
when 'mysql'
gem "activerecord-jdbcmysql-adapter", :platforms => :jruby
when /postgresql/
gem "pg", ">= 0.11.0", :platforms => [:mri, :mingw, :x64_mingw]
gem "activerecord-jdbcpostgresql-adapter", :platforms => :jruby
when /sqlite3/
gem "sqlite3", :platforms => [:mri, :mingw, :x64_mingw]
gem "activerecord-jdbcsqlite3-adapter", :platforms => :jruby
when /sqlserver/
gem "tiny_tds", "~> 0.6.2", :platforms => [:mri, :mingw, :x64_mingw]
gem "activerecord-sqlserver-adapter", :platforms => [:mri, :mingw, :x64_mingw]
else
warn("Unknown database adapter `#{adapter}` found in config/database.yml, use Gemfile.local to load your own database gems")
end
end
else
warn("No adapter found in config/database.yml, please configure it first")
end
else
warn("Please configure your config/database.yml first")
end
続いて以下の行を追加
group :production do
gem "pg", ">= 0.11.0", :platforms => [:mri, :mingw, :x64_mingw]
gem "activerecord-jdbcpostgresql-adapter", :platforms => :jruby
end
セッションストアの初期化を実施
セッションストアの初期化はheroku上ではできないのでローカルで実行します。
※コメントにて何故できないかをご説明頂きました。感謝。
rake generate_secret_token
続いて以下のコマンドを実行
git remote add heroku 先ほど作成したアプリのgitURL
git add .
git commit -m "first commit"
※コメント内容は適したものに変更してください
herokuへのアップロード
以下のコマンドを実行
git push heroku master
※pushでソースのアップロードが完了するとにheroku上でbundle install
などが走る
heroku上のredmineのdb:migrateを実施
heroku run rake db:migrate RAILS_ENV=production
デフォルトデータの登録
heroku run rake redmine:load_default_data RAILS_ENV=production
heroku上のredmineを再起動
heroku restart
heroku上のredmineアプリのURLにアクセス確認
正常に起動していた場合、adminのパスワード変更(重要)
完了
参考にさせて頂いた記事の一覧
http://www.workabroad.jp/posts/1164
http://redmine.jp/guide/RedmineInstall/
http://qiita.com/takudo/items/71f52668060cc2a49c7e
http://blog.digital-squad.net/article/405317288.html
http://qiita.com/ogomr/items/53549e845ccf7a210663
http://rubyinstaller.org/
http://halucolor.blogspot.jp/2013/02/githerokuherokupush.html