So far I have had zero success in setting up the sync for the keepass databases on my three systems. I attempted to find the instructions in the help file but I cannot anything that is helpful for me. I need a simple set of instructions not pointers to several different locations in the help file.
I'm running Win8.1 on all three systems.
On my desktop my DB is at R:\Libraries\KeePass - all systems have RW access to this drive and folder
On my wife's laptop the location is A:\Libraries\KeePass
On my laptop the location is B:\Libraries\KeePass
On all three systems I'm using the same name for the DB JGT.kdbx
All three systems have the same userid
All three systems are running KeePass 2.28
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
To synchronize the database on three computers requires some form of shared storage that is accessible to all computers. While this could be a file share in one of your computers the more flexible way is to used a cloud service. I personally use TeamDrive as I am more comfortable with their security and (important for European users) the servers are located in Europe and out of the clutches of the USA Patriot Act!
There is information on the KeePass web site on how to set this up - see:
Look for the section "Synchronizing with Dropbox / other PC synchronization software".
Very briefly there is a mater copy held on the file share in the cloud. The cloud copy is replicated to each participating computer. This is FILE replication of the whole database.
Each participating computer synchronizes at the RECORD level (each individual entry) with the cloud copy. Any differences between the local and cloud databases are exchanged so that these contain the same entries and if necessary (i.e. it has been changed) the cloud copy is written back to the cloud and then replicates to all other computers.
This sounds more complicated than it really is but is the only way of ensuring that no changes are lost if unrelated changes are made on two computers. The example shows step by step how to create the triggers needed.
You do not need the local KeePass file paths to be the same on all your machines or even for the names to be the same.
Last edit: steelej 2014-12-29
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Where do you save the local database, or do you open the database from the share?
If you open the database from the share you do not need to sync, every time you save you will either just save, or be prompted to sync the changes. Always select the sync option.
cheers, Paul
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Look at it this way, multiple devices can be setup to access a single database that syncs automatically. With all 3 pc's having RW access to database at R:\Libraries\KeePass, than set it up so all 3 pc's point to it and it only.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
If you have multiple devices sharing a common database directly this is very simple to set up. the snag is that the sharing is at the FILE level.
Take the case of two devices having access. Device A and Device B both have the database open. Device A modifies one KeePass record and saves the database which overwrites the shared copy. Device B does not know the database has been updated and updates a different record and then saves the database. The changes made from Device A are LOST.
The recommended method is to have a local copy on each device AND a shared copy accessible to all. Triggers can perform a record synchronization each time the database is saved avoiding the loss of data. There is still a situation where two devices make simultaneous updates to the same Keepass record. in this case the older entry is retained in the record history and is not totally lost.
It is however your choice. If only one device makes updates and all other devices are effectively read only then the simple file sharing method will work.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ultimately I think this is what I want to do. Currently I just setup a DB on my desktop that all three systems access. This resolves my immediate need of insuring all systems have the updates.
It is my understanding that with all three systems accessing the same DB if anyone system makes an update then the other two can see the update when the system making the update saves.
My next step is to setup what you are suggesting, e.g. the recommended method. Because it is only me or my wife making an update it is very unlikely that we will both be updating the same record. Most of the time it is only me that is making the updates but often I'm working on my desktop and laptop at the same time via TeamViewer.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
On my desktop my DB is at R:\Libraries\KeePass - all systems have RW access to this drive and folder
On my wife's laptop the location is A:\Libraries\KeePass
On my laptop the location is B:\Libraries\KeePass
Use the local file on each machine as the master database.
Set up a trigger on both laptops that syncs to the desktop copy of the database whenever the database is saved on the laptop.
Add a custom button to the toolbar of KeePass on the laptops that syncs to the desktop - for those times you just want to update because you made a change when you were on the road, or on the desktop.
The syncs will need a condition of "the desktop file exists" for those times you are offline.
If you have two machines that can Update a single copy on a shared drive and each updates the shared database file then data WILL BE LOST!!!!!
The data base is read and written as a single file be each computer. There is no record locking. If two computers have the database open and data will be held in their computer's memory. If record A is updated one one machine and then the database file is written to the shared location and then Record B is updated on a second machine without reloading the database first then the changes to record A will be overwritten without any warning.
If you accept that some data will inevitably be lost then use the shared file you are suggesting. This can only work if both users cooperate and are aware of what the other is doing.
If you want to ensure that no data is lost then follow the recommended method using a local copy and synchronize to a shared copy.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
rgt seems to understand the possibility of conflict when the same entry is changed at the same time. Even if this does happen, KeePass will save the conflicted data in history, retaining the latest change, based on time stamps.
cheers, Paul
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
So far I have had zero success in setting up the sync for the keepass databases on my three systems. I attempted to find the instructions in the help file but I cannot anything that is helpful for me. I need a simple set of instructions not pointers to several different locations in the help file.
I'm running Win8.1 on all three systems.
On my desktop my DB is at R:\Libraries\KeePass - all systems have RW access to this drive and folder
On my wife's laptop the location is A:\Libraries\KeePass
On my laptop the location is B:\Libraries\KeePass
On all three systems I'm using the same name for the DB JGT.kdbx
All three systems have the same userid
All three systems are running KeePass 2.28
To synchronize the database on three computers requires some form of shared storage that is accessible to all computers. While this could be a file share in one of your computers the more flexible way is to used a cloud service. I personally use TeamDrive as I am more comfortable with their security and (important for European users) the servers are located in Europe and out of the clutches of the USA Patriot Act!
There is information on the KeePass web site on how to set this up - see:
http://keepass.info/help/kb/trigger_examples.html#dbsync
Look for the section "Synchronizing with Dropbox / other PC synchronization software".
Very briefly there is a mater copy held on the file share in the cloud. The cloud copy is replicated to each participating computer. This is FILE replication of the whole database.
Each participating computer synchronizes at the RECORD level (each individual entry) with the cloud copy. Any differences between the local and cloud databases are exchanged so that these contain the same entries and if necessary (i.e. it has been changed) the cloud copy is written back to the cloud and then replicates to all other computers.
This sounds more complicated than it really is but is the only way of ensuring that no changes are lost if unrelated changes are made on two computers. The example shows step by step how to create the triggers needed.
You do not need the local KeePass file paths to be the same on all your machines or even for the names to be the same.
Last edit: steelej 2014-12-29
Where do you save the local database, or do you open the database from the share?
If you open the database from the share you do not need to sync, every time you save you will either just save, or be prompted to sync the changes. Always select the sync option.
cheers, Paul
Look at it this way, multiple devices can be setup to access a single database that syncs automatically. With all 3 pc's having RW access to database at R:\Libraries\KeePass, than set it up so all 3 pc's point to it and it only.
Good idea but if the laptop is not connected to my LAN (example, I'm on the road) I will not be able to open the DB.
If you have multiple devices sharing a common database directly this is very simple to set up. the snag is that the sharing is at the FILE level.
Take the case of two devices having access. Device A and Device B both have the database open. Device A modifies one KeePass record and saves the database which overwrites the shared copy. Device B does not know the database has been updated and updates a different record and then saves the database. The changes made from Device A are LOST.
The recommended method is to have a local copy on each device AND a shared copy accessible to all. Triggers can perform a record synchronization each time the database is saved avoiding the loss of data. There is still a situation where two devices make simultaneous updates to the same Keepass record. in this case the older entry is retained in the record history and is not totally lost.
It is however your choice. If only one device makes updates and all other devices are effectively read only then the simple file sharing method will work.
Ultimately I think this is what I want to do. Currently I just setup a DB on my desktop that all three systems access. This resolves my immediate need of insuring all systems have the updates.
It is my understanding that with all three systems accessing the same DB if anyone system makes an update then the other two can see the update when the system making the update saves.
My next step is to setup what you are suggesting, e.g. the recommended method. Because it is only me or my wife making an update it is very unlikely that we will both be updating the same record. Most of the time it is only me that is making the updates but often I'm working on my desktop and laptop at the same time via TeamViewer.
The syncs will need a condition of "the desktop file exists" for those times you are offline.
You can base the sync trigger on the sample here.
cheers, Paul
If you have two machines that can Update a single copy on a shared drive and each updates the shared database file then data WILL BE LOST!!!!!
The data base is read and written as a single file be each computer. There is no record locking. If two computers have the database open and data will be held in their computer's memory. If record A is updated one one machine and then the database file is written to the shared location and then Record B is updated on a second machine without reloading the database first then the changes to record A will be overwritten without any warning.
If you accept that some data will inevitably be lost then use the shared file you are suggesting. This can only work if both users cooperate and are aware of what the other is doing.
If you want to ensure that no data is lost then follow the recommended method using a local copy and synchronize to a shared copy.
rgt seems to understand the possibility of conflict when the same entry is changed at the same time. Even if this does happen, KeePass will save the conflicted data in history, retaining the latest change, based on time stamps.
cheers, Paul