Hi Jen,

Thanks for your suggestion, I don't have a master build script, I do it be hand through phpMyAdmin and then use the backup feature of that if I want to move it.

I'm really looking for something that I can say to: "compare this database with this one and tell me what the differences are" and it can give me something like:

table.column has type VARCHAR(255) in DB1 but type TEXT in DB2
table.column is indexed in DB1 but not in DB2
table.column_2 does not exist in DB2
table_2 does not exist in DB2

And also possibly a machine readable output format so I can process making DB2 the same as DB1 automatically, although I think I may prefer to still make the change manually. Not sure of details yet but need options first :)

Obviously I may end up writing some or all of it myself but it seems like something someone else has probably done and it would save me time if it's out there somewhere or at least a starting point such as the diff analysis.

Cheers,
Nigel

Jeni Zundel wrote:
Nigel -
Do you have a master build script for building the db structures?

We used to do this at a software company I worked at; where we had to do 
reasonably frequent builds and changes to the db structure, so we needed a 
build process to be fairly streamlined:

We would have separate create scripts for our db objects - like tables, triggers (rarely used, but still), indices, tablespaces, etc.; then, we would have a master script that would invoke each of the object scripts. If you had it set up like this, you could probably run a fairly quick diff on your object scripts using a glob with perl to find your diffs. If you set it up to have a directory structure to sort scripts by db object type (c:/tables, c:/tablespaces, c:/ views, etc.) then you can diff by subdir & only run what you need to rebuild for an update.
I don't know if this helps or if this was already obvious to you.

Thanks,
Jen
On Monday, May 07, 2007, at 09:14AM, "Nigel Peck" <[EMAIL PROTECTED]> wrote:
Hi,

When I'm developing web applications I have a dev version of the scripts, modules and database and a live version. Nothing new there.

I'm trying to automate the process of moving the dev site to the live site (the dev sites are on a Fedora server on my desk and the live sites on a Redhat server in a data centre 200 miles away).

I've written scripts to copy the scripts and modules (and other associated files) to my local machine and ftp them to the live server and these work fine.

However the final stage is to be able to bring the database structures into sync. Currently I keep a list of all the fields/tables/changes I've made and do this manually. I also check the table strcutres by hand to be sure I didn't miss anything.

I'd like to find a way of comparing the two MySQL database strcutures and getting a list of the differences, anyone know of any modules/methods for doing this?

Thanks in advance,

Nigel

--
MIS Web Design
http://www.miswebdesign.com/

MIS Web Design Limited is registered in England and Wales with company number 04561623. Our VAT Registration Number is 803-939-126.


--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/






--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to