気づき #864
未完了Redmine運用のRAILS Console 利用事例
0%
説明
Redmineの運用にて、RAILS Console利用事例の蓄積用チケット
Redmineのパスから下記実行してコマンド入力
bundle exec rails console production
関連情報¶
Rubyでメソッド一覧を確認するmethodsメソッドが便利
https://paranishian.hateblo.jp/entry/ruby/methods
class Object methods
https://docs.ruby-lang.org/ja/latest/method/Object/i/methods.html
コンソールを起動(rails console)
http://railsdoc.com/rails#%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%E3%82%92%E8%B5%B7%E5%8B%95(rails%20console)
Rails環境で動かすバッチ処理(rails runner)
http://railsdoc.com/rails#Rails%E7%92%B0%E5%A2%83%E3%81%A7%E5%8B%95%E3%81%8B%E3%81%99%E3%83%90%E3%83%83%E3%83%81%E5%87%A6%E7%90%86(rails%20runner)
RAILS Consoleから使用出来るメソッド一覧¶
(下記は、Usersクラスのメソッド一覧 public/protected)
@users = User.new
pp @users.methods
メソッド名をソートして行単位表示
pp @users.methods.sort
メソッド名で制限して表示
pp @users.methods.grep(/public/)
methodsの他に下記も利用可能
private_methods
protected_methods
public_methods
利用事例¶
RedmineでRails console実行した設定作業の例
親子チケットの階層崩れを修正したい¶
https://redmine.tokyo/issues/725
bundle exec rails console production
irb(main):001:0>
Issue.rebuild_tree!
ワンライナー
RAILS_ENV=production bundle exec ruby bin/rails runner 'Issue.rebuild_tree!'
多数のPJ(階層/名称)に、メンバー登録+ロール設定を一括設定したい¶
https://redmine.tokyo/issues/723
(リンク先参照、Project(lft/rgt),Member処理含)
プラグインの全PJ一括有効化¶
https://redmine.tokyo/issues/688
Project.where('identifier like ?', "redmine_tokyo%").each do |project|
project.enable_module!('unofficial_cooking')
end
adminパスワードをコマンドで強制変更¶
https://redmine.tokyo/issues/702
User.find_by_login('admin').update_attribute(:password, '新パスワード')
quit
ansibleでのインストール時取込例
https://github.com/y503unavailable/redmine-centos-ansible/issues/3
ダンプ¶
rb(main):003:0> pj_src.members
=> #<ActiveRecord::Associations::CollectionProxy [ #<Member id: 1, user_id: 5, project_id: 1, created_on: "2019-02-02 17:44:57", mail_notification: false>, #<Member id: 3, user_id: 1, project_id: 1, created_on: "2019-02-02 18:21:00", mail_notification: false> ]>
members,users,pricipals,memberships,,,同様