PostGISのレコードを誰かがQGISで編集すると、別の誰かのQGISではどうなるのか確認してみた
はじめに
いつもは一人でPostGISのデータをQGISで編集していましたが、2人で同じレイヤを編集した場合にどうなるのかが気になったので、今回実験してみました。
テスト環境
実験環境は、サーバー1台、作業用PC2台です。
Aさん接続直後
Bさん接続直後
片方のPCでオブジェクトを削除してみる
AさんのPCで、左のオブジェクトを削除して保存しました。
BさんのPCには一切触れていません。見た目は何も変わりませんでした。ここで、ちょっとマップを動かしてみると...
Aさんが削除したオブジェクトが、BさんのPCでも消えました。
いつ削除されたことを知ったのか
サーバーでtcpdumpを実行して、AさんのPCでオブジェクト削除から保存までのデータを見てみました。このログにはBさんのPCのIPアドレスは出てこなかったので、どうやらサーバーからはBさんにオブジェクト削除のことを教えていないようです。
今度はBさんPCのマップをずらしてみたり、テーブルを開いてみました。するとログにBさんPCのIPアドレスが出てきたので、Bさんが何かする度にサーバーに問い合わせているようです。
同じレコードを、片方は削除、片方は移動してみる
AさんPCでは削除。
BさんPCではオブジェクトを移動します。
AさんPCで先に変更を保存し、次にBさんPCで変更を保存すると、BさんPCで移動したはずのオブジェクトが消えてしまいました。先に行ったAさんの変更が反映されてしまったようです。
課題
QGISからPostGISのテーブルをロックすることが可能かどうか調べ、複数のユーザーで編集が安全に行える方法が分かったらここに追記したいです。
最後までご覧頂き、ありがとうございました。