We're a .NET team which uses the Oracle DB for a lot of reasons that I won't get into. But deployment has been a bitch. We are manually keeping track of all the changes to the schema in each version, by keeping a record of all the scripts that we run during development.
Now, if a developer forgets to check-in his script to the source control after he ran it - which is not that rare - at the end of the iteration we get a great big headache.
I hear that SQL Compare by Red-Gate might solve these kind of issues, but it only has SQL Server support. Anybody knows of a similar tool for Oracle? I've been unable to find one.
Red Gate Schema Compare for Oracle has now been released!
http://www.red-gate.com/products/schema_compare_for_oracle/index.htm
There is a 28-day fully functional free trial. Please give it a go and let us know your feedback!
TOAD is a great generic tool for Oracle development and i think a similar feature is in the basic version. You can download a trial version (make sure you don't get the old free version of TOAD, that is about 4 years old)
If you don't want to buy a tool, and you need something less flash you could roll your own quite easily. I just found Schema Compare Tool for Oracle which looks very simple, and has a nice baseline concept. This is very handy if you want to track changes since the last code check-in. This way you discover changes that may have been made to multiple DBs by hand, but not documented.
PS: The "SQL Compare by Red-Gate" demo looked very nice indeed... however the voice over cracked me up... sounded like a BBC documentary.
OraPowerTools will do the job.
There is also a "Diff Wizard" in Oracle SQL Developer, but I haven't used it yet.
Hitchhiker,
If you're willing to spend some money, TOAD has "compare schemas" functionality which should do what you're after. It'll report the differences and produce a migration script to bring one into line with the other.
I've never used the script, so I can't vouch for it, but I have used it to make sure our build scripts are complete.
Mark - I would like to be able to easily synchronize two database schemas. Specifically, this demo looks like heaven to me.
Check out Oracle Enterprise Manager Change Management Pack, its an Oracle tool for this:
http://www.oracle.com/technology/products/oem/pdf/ds_change_pack.pdf
You can try it there:
http://www.oracle.com/technology/software/products/oem/index.html
There are various tools out there that you can use, I haven't used any of them myself though so I've got no comments to make about them, but another "trick" that you can use is to create a trigger on DDL events, so you can basically capture (to a table, or log file or whatver) any changes done between deployments.
DDL Triggers