We're a team of numerous designers focusing on an internet site that utilizes both Joomla and custom PHP scripts. The issue is that you will find multiple designers focusing on various features which require to update information in Joomla (adding modules, altering existing ones or altering configurations) so when one developer changes something, he usually helps make the change in your area first after which does exactly the same factor (hopefully) around the production server. Not just that this is error-prone, however the designers frequently forget to inform other designers concerning the changes. The custom PHP scripts are often shared between designers, however the alterations in Joomla are frequently forgotten plus they result in serious conflicts whenever a developer attempts to replicate his local alterations in production.
I've considered placing Joomla inside a Mercurial repository, but exactly how could we distribute the alterations within the database between your development, the testing and also the production machines?
We run our Joomla sites over subversion, checking them out as needed. We simply branch whenever we have to make major amends to some project.
Generally, we operate a single test database that is shared among everybody to make sure we now have consistent data however, you could easily run local DB's too.
We use SVN for those our clients with separate databases. When setting up a brand new extension the database changes. Having a diff from the databasedump before and also the databasedump after installing of the extension we all know exactly what the variations are.
Should you build everything as extensions (modules, components, and plug ins), they ought to include any database changes needed. I'd arrange it so each developer is working off their very own local database. If you want test data loaded, I'd just create MySQL scripts that may be pursue you put in all of the extensions. Since all this could be checked out a repo, you ought to be good on everybody discussing code.
Using PHP, you need to have the ability to write down a fast script which will begin with a clear server, install Joomla!, install all of your extensions, after which dump in a test data. Getting this may also be great for designers to return to a "clean" condition. I'd encourage designers to totally reset to the golden condition before they begin any new work.
Also try this is always to use mysqldump to dump all your tables. If your user constitutes a database change on their own local machine, they should also dump the change and appearance it in.
We use SVN on our server to handle these kinds of issues. If you are planning to complete any productive development having a team of individuals you need to make use of a revision control system. You will find several available, possess a google for svn, resumes, git, individuals are the most generally recognized version control systems. It could take a while to create initially however, you will reap the rewards from this!
Hope that can help! Cheers