Me and the other coder have been editing database changes on a staging version and a new developer made his own changes locally and just wrote .sql files that he expected us to run (without even telling us), and when I brought it up he insisted that we do it that way, however he was not consistent about it and we had already diverged. It took us a while to sync it all up, but he's expected us to just look at his commits and run his files (even though he's modified them, diverging his own db) and us do it the same way in this chaotic fashion, so I wrote a file that lets us create change files and run them automatically in a parent file. However, he's said it's too complicated for him (even though I previously explained it to him and he got it and liked it and said he would use it), and now he's said he'll just use CakePHP migrations for his changes, diverging from us further, not including us in that system because he says it isn't finished yet, so now when we start using it he'll either have to throw away his migration files (so we can start at a fresh version of the database) or we'll have to merge out changes in, breaking his migration files or causing us undue work writing our own to sync with it... this sounds like total chaos.

I want to say "Let's either use your system now or when you get it working, let's start at this version of the database and then start creating our migration files". If he insists on keeping his own migration files, I'm not sure what to say at that point.

How is this supposed to be done and what do you think of this?