Thanks for the reply!
Unfortunately, it reinforces my feeling that Liquibase isn't the
solution I was hoping for. It's definitely a step in the right
direction, but I think that it doesn't quite fit in with our approach to
deployment, and it's pretty difficult to configure.
I'll just spend a couple hours and throw together a tool that does what
we need.
Paul Keeble wrote:
The best way to explain why you need to do it the Liquibase way is to
show you an example which will likely answer your question.
Lets say I have a table and it has two columns.
Table A
a varchar
b varchar
I put this into production and I have 10,000 rows of data with a and b
populated.
During development we realise b isn't a good name for the column, so
we change it to c. That fits much better with the code but its going
to need a database upgrade when it comes to the new release in
production. Time goes on and then when it gets to rolling out
production someone looks at the testing database and sees the following:
Table A
a varchar
c varchar
The database guy doesn't know what you did but he looks at the data
and works out that this must be what b was in the old schema. So he
writes an alter statement that he runs on the database to do the
upgrade. Alas Liquibase doesn't have the AI engine you would hope in
order to do this. All it can see is that b is gone and c is created,
but you really don't want it to drop column b and create column c! So
you have to define each increment.
So to answer your question - yes you need to define each increment.
That is until someone works out how to write an expert DBA into the
liquibase code base. I wouldn't hold my breath, its a fair way off
yet. What you can do is use the diff functionality to show you the
differences and even generate the beginnings of a changelog to get you
started. You'll still need to modify it by hand and check everything
its done and test your upgrade process before doing it to production,
but at least then you would have a testable upgrade process!
I hope that helps.
Paul Keeble
------------------------------------------------------------------------
*From:* Evan Ross <[email protected]>
*To:* [email protected]
*Sent:* Friday, 20 February, 2009 17:32:07
*Subject:* [Liquibase-user] Using Liquibase in simple mode?
Sorry for the newbie question, but...
In my application I just need to take a snapshot of the schema on my
development machine and then replicate it on production machines.
The Liquibase documentation talks about doing incremental updates and
keeping track of each one, but my needs are much simpler.
I just need a way to make sure that columns get added, dropped, or
have their types changed while retaining their data.
Can I set this up easily? To do full copies instead of incrementals?
------------------------------------------------------------------------
------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
------------------------------------------------------------------------
_______________________________________________
Liquibase-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/liquibase-user
------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Liquibase-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/liquibase-user