PostGISのレコードを誰かがQGISで編集すると、別の誰かのQGISではどうなるのか確認してみた


はじめに

いつもは一人でPostGISのデータをQGISで編集していましたが、2人で同じレイヤを編集した場合にどうなるのかが気になったので、今回実験してみました。


テスト環境

f:id:Chiakikun:20201107123910p:plain

実験環境は、サーバー1台、作業用PC2台です。

 

f:id:Chiakikun:20201107131727p:plain

Aさん接続直後

 

f:id:Chiakikun:20201107131821p:plain

Bさん接続直後

 


片方のPCでオブジェクトを削除してみる 

f:id:Chiakikun:20201107132833p:plain

AさんのPCで、左のオブジェクトを削除して保存しました。

f:id:Chiakikun:20201107133045p:plain

BさんのPCには一切触れていません。見た目は何も変わりませんでした。ここで、ちょっとマップを動かしてみると...

 

f:id:Chiakikun:20201107133350p:plain

Aさんが削除したオブジェクトが、BさんのPCでも消えました。


いつ削除されたことを知ったのか

f:id:Chiakikun:20201107140243p:plain

サーバーでtcpdumpを実行して、AさんのPCでオブジェクト削除から保存までのデータを見てみました。このログにはBさんのPCのIPアドレスは出てこなかったので、どうやらサーバーからはBさんにオブジェクト削除のことを教えていないようです。

今度はBさんPCのマップをずらしてみたり、テーブルを開いてみました。するとログにBさんPCのIPアドレスが出てきたので、Bさんが何かする度にサーバーに問い合わせているようです。

 


同じレコードを、片方は削除、片方は移動してみる

f:id:Chiakikun:20201107183535p:plain

AさんPCでは削除。

 

f:id:Chiakikun:20201107183735p:plain

BさんPCではオブジェクトを移動します。

 

f:id:Chiakikun:20201107185119p:plain

AさんPCで先に変更を保存し、次にBさんPCで変更を保存すると、BさんPCで移動したはずのオブジェクトが消えてしまいました。先に行ったAさんの変更が反映されてしまったようです。


課題

QGISからPostGISのテーブルをロックすることが可能かどうか調べ、複数のユーザーで編集が安全に行える方法が分かったらここに追記したいです。

 

最後までご覧頂き、ありがとうございました。