このモジュールは、Odoov10コミュニティに機能する自動更新システムを提供します。
checksum_dir
列がir.module.module
に追加されます。これは、ディレクトリのsha1チェックサムを表します( checksumdir
)。 現在インストールされているモジュールバージョンのチェックサムを表すchecksum_installed
列も追加されます。
現在のUpdates
アプリのメニューはのツリービューが表示されます同じ命名のメニューに置き換えられますir.module.module
持つレコードをchecksum_dir
とは異なることにchecksum_installed
。
上記のツリービューのヘッダーにボタンを追加してUpdate Apps List
機能を許可すると、より流動的なプロセスが可能になる場合があります。 または、更新リストを表示するときに、これを暗黙的に呼び出す必要があるかもしれません。
更新するモジュールがツリービューで選択され、アップグレードのスケジュールを設定するためのオプションがAction
メニューに表示されます。
アップグレード自体は、 ir.module.status
をto upgrade
に設定する標準のOdooメカニズムを使用してスケジュールされます。 そこから、UIの既存のApply Scheduled Upgrades
ボタンが機能します。
さらに一歩進めるために、特定のタイミングでモジュールを自動アップグレードするためのcronジョブを構成するサーバーパラメーターも追加します。
便利な機能は、アップグレード中にすべての着信Web要求を定義済みの静的テンプレートにリダイレクトすることです。これにより、より適切なメンテナンス期間が可能になります。
誰かがこれ、または私がこれに基づくことができる既存のコードについて考えていますか?
@lasleyと自動gitフェッチとgitリセット? それ大好き。
誰もがGitを使用しているわけではないので、これは不可能です。
:+1:コミュニティ更新機能用。
一部のインスタンスはまだDocker化されていないため、レガシーの操作を少し簡単にし、アップグレードを少しプッシュバックするために、オプションとしてgit処理を追加しても実際には問題ないかもしれません。
少なくとも私のデプロイで遭遇する1つの問題は、いくつかのまれなインスタンスを除いて、Odooユーザーがモジュールディレクトリへの書き込みアクセス権を持っていないことです(それでも、 ./static
ディレクトリのみ)。 これはあなたの@ Yenthe666には当てはまりませんか?
こんにちは@lasley 、
いいえ、その問題はありません。 Odooユーザーは、まさにこのために/odoo
フォルダー内にアクセスできます。
よろしく、
イェンテ
また、 @ pedrobaezaは、これを設定したい人やgitを使用できるようにするための設定として簡単に構成できます。
OKじゃあ
@ Yenthe666-機能を追加するのは簡単なので、先に進んでこれを実装します。 これは、製品のようなセキュリティがない開発環境でも役立ちます。
注意として、Odooユーザーが明示的に書き込む必要のないファイルへの書き込みアクセスを許可する構成はお勧めしません。 これは、WordpressやMagentoなどの他のCMSに共通の攻撃ベクトルであるため、ここでも同じように感じます。 基本的に、攻撃者がOdooを制御できるようになると、攻撃者はあなたが決して見ることのない場所に悪意のあるコードを仕掛けることができます。
1つの解決策は、gitとバージョンを忘れて、代わりにSHAチェックサムを使用することです。 ir.cron
ジョブは次のようになります。
@lasleyこのモジュールには、提案内容と自動バックアップhttps://github.com/ingadhoc/odoo-support/tree/9.0/database_toolsが部分的に含まれています
すでにodoo日とocasprint日で発表しましたが、注目されませんでした
READMEで利用可能なプレゼンテーションを確認できます。 「oli」を追加したので、コマンドラインから「odoo.pyfixdb」のようなものでデータベースを修正できます。 dbを修正している間、同じxmlrpcで静的ページを使用してWebクライアントを起動し、アップグレード中であることを通知します。
モジュールには醜いものがたくさんありますが、私たちはそれを本番環境で3年以上使用しています
@ Yajo-ああ、いい考えだ。 RFCが更新されました。 Odooの起動時にディレクトリチェックサムを生成するだけで意味がありますか、それともボタンが必要ですか?
@ jjscarafia-ラインを落としてくれてありがとう! このモジュールは、OCAにすでにあるものをたくさん複製しているように見えますが、ここにも完全に役立つものがいくつかあります。 残念ながら、これをSaaSに統合するため、AGPLではなくLGPLライセンスが必要になります。 このコードの一部を使用して共著を提供できるようにしたいと思いますが、ここでLGPLの下でバージョンをリリースできる必要があります。
デフォルトの「今すぐcronを実行」ボタンでうまくいくと思います。 それは確かに私見で必要になるでしょう、しかしあなたはすでにそこにそれを持っています。
また、私はできるだけ賢くなく、デフォルトでchecksum_installed
空にします。 次のcronの反復では、それが不一致であると見なされ、すべてが更新されます。 そしてその時点から、すべてが良いでしょう。 cronは、午前3時頃に実行するように事前構成する必要があります。
@lasleyはい、その重複はたくさんありますが、これはocaが存在する前のものでした。 odoo 10に移行するときに、その機能が廃止されることを確認するための保留中のタスクがあります。そのため、別のモジュールでモジュールの更新機能を使用できるようにすると便利です。 LGPLに変更することの意味についてはまだあまり詳しくありませんが、私にとっては問題ありません。 コードの使用とライセンスの変更を許可するにはどうすればよいですか?
@ jjscarafia -LGPLの主な意味は、誰かがアプリのクローズドソース派生物を作成する可能性があるため、間違いなくかなり重いということです。 過度に単純化されているこの内訳を見てくださいが、私はポイントを理解していると思います。
「同じライセンス」は、派生物がソフトウェアをライブラリとして使用していない場合にのみ適用されることがわかります。 素人の言葉で言えば、これはGPLとAGPLライセンスがマニフェストのモジュールに依存するものにブリードすることを意味します。 LGPLは、モジュールの実際のコードに変更を加えるコードにのみブリードするため、マニフェストでLGPLに依存するだけで、任意のライセンス(おそらくプロプライエタリ)を選択できます。
必要なのは、許可とライセンスの変更を先取りすることだけです。 私のチームは必要なものを移行し、PRであなたにタグを付け、そこであなたの承認を得ます。 その後、変更に同意したという記録がありますので、よろしくお願いします。
私はあなたのモジュールに深く入り込んでいませんが、 fix_db
部分が何をするのか興味がありましたか? それはすべての更新を実行するだけですか?
#882で追跡するために閉じる
最も参考になるコメント
@ Yenthe666-機能を追加するのは簡単なので、先に進んでこれを実装します。 これは、製品のようなセキュリティがない開発環境でも役立ちます。
注意として、Odooユーザーが明示的に書き込む必要のないファイルへの書き込みアクセスを許可する構成はお勧めしません。 これは、WordpressやMagentoなどの他のCMSに共通の攻撃ベクトルであるため、ここでも同じように感じます。 基本的に、攻撃者がOdooを制御できるようになると、攻撃者はあなたが決して見ることのない場所に悪意のあるコードを仕掛けることができます。