Hello Cal,

I don't think there is a "magic bullet" for what you want.  Although I'm sure some 
sort of Perl script could do a comparison and create the proper ALTER TABLE SQL to 
make the two tables equal.

I usualy just copy tables using the CREATE TABLE syntax (as below) and make the manual 
alterations as needed.

Regards,

- Scott


> Database in Test:
> 
> Table1
> --------
> Table1ID
> ========
> myField1 varChar(20)
> myField2 int
> myFiled3 varChar(40)
> --------
> 
> Database in Prod:
> Table1
> --------
> Table1ID
> ========
> myField1 varChar(60)
> myField2 int
> myField3 varChar(40)
> myField4 int
> --------
> 
> I'd like something that compares these two databases. (Either the databases
> themselves or a mysqldump of the databases and comes up with a sql script:
> 
> Alter table Table1 add myField4 int;
> Alter table Table1 change myField1 myField1 varChar(60);
> 
> Yes, I can do it by eyeballing it...I'm just too lazy.  :)
> 
> Thanks for replying. Hope I've made things clearer.
> 
> Cal
> http://www.calevans.com
> 
> 
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
> Sent: Sunday, January 21, 2001 1:48 PM
> To: Cal Evans
> Cc: [EMAIL PROTECTED]
> Subject: Re: Database structure DIFF
> 
> 
> 
> I'm not sure what you mean by "structural changes".
> 
> If the the two table have the same number of columns and they are in the
> same order, you can do something like what I have explained below.  It you
> included the table info from prod and test I could help you better (DESC
> prod;).
> 
> 
> 
> # Create the empty shell of test (all column definitions);
> 
> CREATE TABLE prod_new
> SELECT * FROM test
> WHERE 1=2;
> 
> # populate prod_new with prod data
> INSERT INTO TABLE prod_new
> SELECT * FROM prod;
> 
> - Verify the prod_new is correct
> - DROP prod
> - RENAME prod_new to prod.
> 
>       - Scott
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> > Pardon the newbie question but is there a tool available for MySQL that I
> > can give it 2 databases and it give me the ALTER TABLE statements
> necessary
> > to make 2 identical to 1?
> >
> > Specifically, I have a test and prod database.  I've made structural
> changes
> > to test and want to propagate them to prod.  Is there an easy way to do
> > this?
> >
> > TIA,
> > Cal
> >
> > Cal
> > http://www.calevans.com
> >
> >
> >
> > ---------------------------------------------------------------------
> > Before posting, please check:
> >    http://www.mysql.com/manual.php   (the manual)
> >    http://lists.mysql.com/           (the list archive)
> >
> > To request this thread, e-mail <[EMAIL PROTECTED]>
> >
> --
> --------------------------------------
>    Scott A. Gerhardt  P.Geo.
>    Gerhardt Information Technologies
>    [EMAIL PROTECTED]
> --------------------------------------
> 
> 
> 
> ---------------------------------------------------------------------
> Before posting, please check:
>    http://www.mysql.com/manual.php   (the manual)
>    http://lists.mysql.com/           (the list archive)
> 
> To request this thread, e-mail <[EMAIL PROTECTED]>
> To unsubscribe, e-mail <[EMAIL PROTECTED]>
> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php
> 
> 


--
--------------------------------------
   Scott A. Gerhardt  P.Geo.
   Gerhardt Information Technologies
   [EMAIL PROTECTED]
--------------------------------------


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to