ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

RedMineのプラグイン作成でハマった話 その3

2015-08-12 16:26:59 | Weblog
前に書いた

RedMineのプラグイン作成でハマった話 その2
http://blog.goo.ne.jp/xmldtp/e/4472576b53bd39b505fc8ac97e139bd0

から、かなりたってしまいました。

いま、さくらのVPSにRedMineのプラグインを入れていたんだけど、
Linuxの場合、新手のエラーが出たので、それについてと、
今までのインストール方法のまとめについて、メモメモ。




■新手のエラー

【状況】
ruby bin/rails generate redmine_plugin redmine_standard

を実行すると、

/opt/redmine-3.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.0.0/gems/mysql2-0.3.14/lib/mysql2/client.rb:67:in `connect': Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (Mysql2::Error)

というエラーが出る

【理由】

現在プラグインが見ているdatabase.yml、つまり

 /opt/redmine-3.0.3-0/apps/redmine/htdocs/config/database.yml

に、データベース設定がされていない

【対策】

上記のdatabase.ymlで、
development:
 と
test :
に対して、production: と同じsocket指定をして、
ついでに、username:とpassword:を設定しておく
→詳細は、以下参照





■plugin 作成方法

●0.準備

<<config/database.ymlの設定>>
 development:とtest :に対して、production: と同じsocket指定をする。
  ついでに、username:とpassword:を設定しておく
 developのところは、こんな感じになる

  (ユーザー名root,パスワードpasswordの場合。良い子のみんなは、
   こんなアカウントを設定しちゃ、だめだよ!)

<<redmine_developmentの作成>>
 mysqlで入って
  cd /opt//opt/redmine-3.0.3-0/mysql/bin
  ./mysql -u root -p
(このあとパスワード入力)
 CREATE DATABASE redmine_development CHARACTER SET utf8;

<<schema_migrationsテーブルをredmine_development中に作成>>
 mysqlに入って、今redmine_developmentを作ったその後で

use redmine_development
CREATE TABLE `schema_migrations` (`version` varchar(255) NOT NULL) ENGINE=InnoDB;

exitで抜ける。


●1.Redmine のトップディレクトリに移動して、生成コマンドを実行します。

cd /opt/redmine-3.0.3-0/apps/redmine/htdocs
ruby bin/rails generate redmine_plugin redmine_standard

●2.init.rbの書き換え

作成したプラグイン(例だとplugins/redmine_standard)のディレクトリに移動して
init.rbを書き換え。コレは以前

RedMineのプラグイン作成でハマった話 その2
http://blog.goo.ne.jp/xmldtp/e/4472576b53bd39b505fc8ac97e139bd0

に書いた。そこのinit.rbの書き換えを参考に
(standardを、自分のモジュール名に代える)

●3.config/routes.rbの書き換え
作成したプラグイン(例だとplugins/redmine_standard)のディレクトリの下の
configにいき、routes.rbを上記エントリに書いてあるように修正する

●4.モデル、コントローラーなど作成
cd /opt/redmine-3.0.3-0/apps/redmine/htdocs
ruby bin/rails generate redmine_plugin_model redmine_standard foo project_id:integer
ruby bin/rails generate redmine_plugin_controller redmine_standard foos index new show edit

●5.プラグイン登録
bundle exec rake db:migrate_plugins RAILS_ENV='production'

●6.再起動
cd /opt/redmine-3.0.3-0
./ctlscript.sh restart
(時間がかかることあり)

なぜか、mysqlが立ち上がらなくなった・・・

ps -alしたら、mysqld_safeとmysqldがいたので、killで殺して、
再度
./ctlscript.sh restart
したら、立ち上がった・・・なんだったんだろう?


●7.ブラウザからアクセス
管理者でログイン

管理>プラグインでみると、プラグインがインストールできていることを確認

各プロジェクトに行き、
設定>モジュール
で、作成したプラグインにチェックを入れると、プラグインが見れる。

●8.コントローラーを直す
cd /opt/redmine-3.0.3-0/apps/redmine/htdocs/plugins/redmine_standard/app/controllers

をおこない、プラグインのappのコントローラーにいって、

vi foos_controller.rb

で、foos_controller.rbを以下のように編集する

class FoosController < ApplicationController
  unloadable
  before_filter :find_project, :authorize

  def index
  end

  def new
  end

  def show
  end

  def edit
  end
private
  def find_project
    @project = Project.find(params[:project_id])
  rescue ActiveRecord::RecordNotFound
    render_404
  end
end


/opt/redmine-3.0.3-0/ctlscript.sh restart

をして、再起動しないと、表示が変わらない場合あり

ちなみに、ログは、
/opt/redmine-3.0.3-0/apps/redmine/htdocs/log
のproduction.logにある。ここで、

SyntaxError (/opt/redmine-3.0.3-0/apps/redmine/htdocs/plugins/redmine_standard/app/co
ntrollers/foos_controller.rb:21: syntax error, unexpected keyword_end, expecting
end-of-input):

とかいうエラーが出た場合、なにか、単純な?書き間違いをしている。

●このあと
ここまででRails を知らない人のための Redmine プラグイン開発ガイドの9なので、それ以降を行っていくことになる。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

グーグルがアルファベットという会社の子会社になることは分かったが・・・

2015-08-12 10:18:56 | Weblog
グーグルがアルファベットに社名変更するの?
アルファベットという会社が新たにできて、そこの子会社になるの?

ま、結果として、
アルファベットという会社ができて、その子会社にグーグルという会社ができることは、
確実なんだけど・・

【参考文献】
1.グーグルがアルファベットに社名変更 ティッカー(GOOG、GOOGL)はそのまま
http://markethack.net/archives/51976638.html


2.米グーグルが組織再編、新会社「アルファベット」設立
http://jp.reuters.com/article/2015/08/10/googleinc-restructuring-idJPKCN0QF28920150810


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする