プロジェクト

全般

プロフィール

QA #688

未完了

プラグインの全PJ一括有効化

奈良 裕記 さんが6年以上前に追加. ほぼ3年前に更新.

ステータス:
回答済
優先度:
通常
担当者:
-
カテゴリ:
-
対象バージョン:
開始日:
2017/07/29
期日:
進捗率:

0%

予定工数:

説明

■現象/要望

プラグイン追加時、各PJ単位に有効化(モジュール設定)操作が必要だが、一括して有効化したい。

理由
・単純作業だが、対象PJ数が多いと面倒で間違い易い。
・動作検証等で繰り返し実行が必要な場合がある。(大規模環境の更新時など)
・各PJ側担当者の判断に任せると、知らなくて使われない場合がある。

■解決策

SQLで実行する

PJのModule登録は、enabled_modulesテーブルに、project_idとnameを並べて追加するだけ。
一括設定の場合は、下記の様にSQL実行すればよい

現在進行中のプロジェクト全部に、'unofficial_cooking'のプラグインを有効化する。
(status=1 -> 進行中プロジェクト)

insert into enabled_modules(project_id,name)
select id,'unofficial_cooking' as module_name
from projects where status=1;

PJの識別子が redmine_tokyo_ で始まるPJの場合に追加

insert into enabled_modules(project_id,name)
select id,'unofficial_cooking' as module_name
from projects where status=1 and identifier like 'redmine_tokyo_%';

Rails Consoleで実行する

上の方法は単純にDBのデータ改竄ですが、下記は本来のRedmine内と同様の処理を実行できます。

起動
bundle exec rails console production
下記実行後は  exit で終了

Project.all.active.each do |project|
  project.enable_module!('unofficial_cooking')
end
Project.where('identifier like ?', "redmine_tokyo%").each do |project|
  project.enable_module!('unofficial_cooking')
end

■対応状況

SQL実行、またはRails Console上操作で対応可能

■補足

逆にdeleteしたい場合は、disable_moduleを実行すればよい。
これらの処理は、 app/models/project.rbで定義されている。
勿論SQLでもdeleteするだけ。

上記PJ設定だけでなく、各Roleへの権限設定も必要な場合が多い。
こちらはrolesのpermissions(text)にyamlでべた書きなので、
上記の様に単純なSQL処理では難しそう。
(単純に1行appendするだけでは無い様子)

Roleはシステムレベルの権限設計なので、内容判断して設定すべきものと考えられる。

奈良 裕記 さんが6年以上前に更新

  • 説明 を更新 (差分)
  • ステータス新規 から 回答済 に変更

奈良 裕記 さんが6年以上前に更新

  • 説明 を更新 (差分)
  • 対象バージョン設定変更対応 にセット

奈良 裕記 さんが6年以上前に更新

奈良 裕記 さんが6年以上前に更新

Takano Akiko さんが6年以上前に更新

rails consoleで行う方法も添えてみますね。

Activeなプロジェクトに対し “unofficial_cooking” というプラグインを有効化する


$ bin/rails console # もしくは bindle exec rails console でconsole起動

Project.all.active.each do |project|
  project.enable_module!(unofficial_cooking')
end

PJの識別子が redmine_tokyo_ で始まるPJに “unofficial_cooking” というプラグインを有効化する


$ bin/rails console # もしくは bindle exec rails console でconsole起動

Project.where('identifier like ?', "redmine_tokyo%").each do |project|
  project.enable_module!(unofficial_cooking')
end

奈良 裕記 さんが6年以上前に更新

奈良 裕記 さんが6年以上前に更新

奈良 裕記 さんが6年以上前に更新

奈良 裕記 さんが6年以上前に更新

ありがとうございます。
マージしました。

奈良 裕記 さんが4年以上前に更新

奈良 裕記 さんが4年以上前に更新

奈良 裕記 さんがほぼ3年前に更新

他の形式にエクスポート: Atom PDF