Hi Folks
As a stand alone developer I have been struggling with the challenge of needing to develop on multiple PC's. I travel between 3 offices and also use my laptop whilst away from the office and always want my development environment and latest version of my app to hand. I want my data and Servoy solution ready to run without the need to continually export and import etc.
Options I considered / tried:
USB Memory: I've tried using USB sticks (lost 1 and destroyed another over the last year), and have been using 'AlwaySynch' to keep the laptop in synch, then each PC from the laptop. Messy! Also calls for SQL dumps etc to sync the data.
Export / Import: One of the problems with ex/import is data. If using the 'export data too' selection with Servoy, if the table already has data then the import does not add the data - and often times I've added just a little data to an existing table to test certain aspects of the app - so the new data is essential.
SVN / CVS: Using a multi developer environment would offer certain benefits such as staged versioning etc. But the extra complexity and necessity to manually synch changes and check-in/out is not really warranted (recall I'm a single developer and I'll be using only 1 PC at a time). I'd also need my data on an accessible server someplace too - which is not something I have to hand. SVN just feels like 'overkill' for my requirements.
So, long-story-short, what I needed was a means to have the same stuff on each PC without exporting and SQL dumping etc. Something where I could simply fire-up my development PC (which ever one it is) and start developing from where I left off last time.
I've been experimenting with an on-line synch tool called DropBox for some of my VB and Access development, and all my Client Db files - so that they are available to me on whatever PC or laptop I'm at. These files are also available via a web browser too, so no excuse for not having the right files with me Using DropBox, and after some head scratching and helpful feedback from Paul Bakker, I was able to get exactly the synchronisation functionality I need.
So, DropBox is a synchronisation solution. It calls for you to create a designated directory on your PC, and sign it in to your on-line DropBox account. Any other PC can install DropBox too and if its also signed into your account it will be automatically synched. Any number of PC's can be signed in at one time. It runs as a service so whenever your PC is on, it's synched! This has worked great for non-system files (such as back-end mdb's and documents etc), but I was concerned how it could be used to solve my challenge with live Db data and Servoy solutions. Turned out to be super easy and heres how I got it all working.
1. Install DropBox. (https://www.getdropbox.com/)
2. Copy servoy_workspace to MyDropBox directory (that starts it synching with all my other connected PC's - or it will when they are switched on).
3. Start Servoy and 'File>Switch Workspace' to select the workspace in the DropBox directory. Close Servoy.
4. Copy MySQL data directory from my C drive to the DropBox directory.
5. From MySQL bin directory fire-up the InstanceConfig app and when prompted select the DropBox directory (MySQL sub dir) as the new 'datadir' for that instance of MySQL.
Re-open Servoy and your system will now be using the synchronised copy of the workspace and the database too. No more export and import etc.
After installing MySQL, Servoy and DropBox on any other PC's, redo steps 2 and 4 to set-up the working environment + copy the servoy_properties file from the initial Dev PC to the new one (application server directory) and you should be good to go! Obviously connectors etc will be required as usual, but once set-up this structure allows (almost) carefree movement between dev PC's. Just close one down, open the next and all my 'stuff' is as I left it! I did initially think that the servoy_properties file might need to be synched too but it seems once this is set (with servers etc) I don't often change it. I do tend to copy it to DropBox occasionally though just for safety's sake!
I'm not sure how I could set Servoy to look for the properties file in another directory anyway (if its possible - it would make the synching even more risk free)?
This will work on MSSQL too, though I don't know enough about Sybase to comment on that. Since all your data is actually on the hard drive of each PC your data server and Servoy Solution will be as fast as it is running from the usual install locations.
DropBox is free with storage up to (9G - corrected to 2G - thanks Harjo) and up to 50G for an annual fee. The DropBox solution is NOT A BACK-UP SYSTEM and if you delete a file or accidentally change some data - then those deletions / changes will propagate across all your synched files, though this structure makes it easy to set-up a regular back-up routine on the DrobBox dir too.
Perhaps I'm the only developer to have this multi PC requirement, but even if you just need to move your development solution from PC to laptop regularly (visiting Clients etc), perhaps this tool will be useful?
Addendum:
I just realised that since DropBox only sends synch info to the web server once the files changed have been closed - and in my case MySQL run as a service is always on keeping a file open - it's necessary to stop the MySQL service after data has changed and before closing down that PC. This gives the few seconds necessary for the synch to take place. This is easy in Win (I have a shortcut to Services). The MySQL service restarts automatically when Win opens of course. The synching is very fast as only the data blocks that have changed are re-synched. This kind of reduces the automatic nature I was targeting but its still significantly easier than export etc.
Feedback and comments welcome!
Cheers
Ian