kompiraの仕様について
ご教示ください。
ユーザフォームをエクスポート、インポートの機能を使ってコピーしたのですが、インポート後の「submitObject」はコピー元のパスを参照しているようです。
そこで確認ですが、これは仕様なのでしょうか?
また、仕様なのであれば、インポート後にインポート先のオブジェクトを参照させるようにするにはどのようにフォームを作成すべきなのでしょうか?
-
正式なコメント
フィックスポイントの高橋です。
これはフォームの仕様、というよりも、エクスポートの仕様と言えるかもしれません。
Kompira オブジェクトはすべてその場所を「パス」で示すようになっていて、エクスポート時にはオブジェクトを参照している情報については、その「パス」を出力するようになっています。ここで、エクスポート時に「どのディレクトリからエクスポートするか」という起点が重要になります。参照先のオブジェクトが、エクスポート起点の配下に含まれる場合は「相対パス」として出力されますが、エクスポート起点の配下に含まれない場合は「絶対パス」として出力されます。
これは推測ですが、フォーム(を含む)オブジェクトをエクスポートされたときに、submitObejct はエクスポート起点配下ではない、別のディレクトリに存在するオブジェクトを参照していなかったでしょうか?
この場合、エクスポートデータに submitObject は「絶対パス」で出力され、インポートしたときにもその「絶対パス」で情報が生成されますので、コピー元のパスを参照していたのではないか、と考えられます。
エクスポートするときに、フォームオブジェクトと submitObject 先のオブジェクトの両方を含む、共通の親ディレクトリからエクスポートすると、submitObject は「相対パス」で出力され、インポートしたときには(コピー元ではない)新しいオブジェクトを参照するようになるのではないかと思います。
ディレクトリ配置やエクスポート起点について、ご確認いただけますでしょうか。
コメントアクション -
> ただ、個別のディレクトリで開発を行ったものを別のディレクトリにインポートしてテストするといったケースの場合、差分のみ(例えばフォームだけ)をインポートすることは出来ないということでしょうか?
現状では、エクスポートやインポートについて起点のディレクトリを指定できる程度で、細かな制御、例えば特定のオブジェクトを除外する、特定の型のオブジェクトだけを対象とする、といった機能を持てておりません。こうした課題については認識しており、たとえばオプションを追加して細かな制御をできるようにならないか、といったことは今後検討してまいりたいと考えております。
> また、複数人で開発を行いたいといった場合、kompira環境ではどのように開発環境を構成すべきなのでしょうか?
複数人での開発スタイルについて、特にこうすべきといった指定はございませんが、弊社内ではやはりある開発における起点ディレクトリは決めておいて、その単位でエクスポート・インポートしながら開発する、というスタイルが多いように思います。
このとき、JSON 形式でなくファイル単位でのエクスポート・インポート機能を用いると、オブジェクト単位でファイルに出力されますので、差分の確認もしやすくなり複数人での開発には適しているかもしれません。ファイル単位でエクスポート・インポートするようにすることで、例えばジョブフロー1つも1ファイルになり(厳密には属性情報は別ファイルになりますが)、github などリポジトリでの履歴管理もしやすくなります。
-
> ファイル単位でのエクスポート・インポートとはどのような機能となりますでしょうか?
マニュアル「1.6. Kompiraのデータバックアップ」に簡単な説明がございます。管理コマンド manage.py を用いて、データのエクスポート・インポートを行う際に、JSON形式あるいはファイル単位形式かを選べるようになっております(ブラウザからのエクスポート・インポート操作では、JSON 形式にのみ対応しています)。
以下のコマンドで、オブジェクト単位にファイルとしてダンプすることができます。
/opt/kompira/bin/manage.py export_dir [options] <path>...
また、eport_dir コマンドでダンプしたファイルについては、以下のように import_dir コマンドを用いて取り込むことが出来ます。
/opt/kompira/bin/manage.py import_dir [options] <dirname>...
参考になさってみてください。
サインインしてコメントを残してください。
コメント
5件のコメント