As the person who does the upgrades for the only production site running master that I am aware of, I avoid update_db.sh even then. Instead, I dump all the upgrade scripts into a single file with cat and manually review each of them to look for potential issues, such as assumptions that we are using the default permission groups or similar. I then commit that file to the branch I make for our update and run it through in a single shot.

Half the time I remove the :eg_version references and replace them with null then, the other half of the time I just add the command line option.

Thomas Berezansky
Merrimack Valley Library Consortium


Quoting Dan Scott <[email protected]>:

On Thu, Feb 9, 2012 at 11:35 AM, Peters, Michael
<[email protected]> wrote:
I could be wrong, but isn't this a job for update_db.sh?

Something like:

/home/opensrf/Evergreen/build/tools/update_db.sh localhost evergreen evergreen  (while in Open-ILS/src/sql/Pg)

*RED ALERT* That's not a good way to try and upgrade from version to version.

update_db.sh grabs the largest value from config.upgrade_log and
applies all of the numbered updates in order after that point.

The problem is that if you're currently on rel_2_1, you might have had
upgrades # 705 and #805 backported from master to fix problems that
also exist in rel_2_1. However, if you want to upgrade to rel_2_2,
update_db.sh will say "Ahh, you already have everything up to #805, so
I'll start with # 806" - even though you might really need all of #
706 through #804 to be applied for new features that only exist in
rel_2_2 and master. After which - hello brokenness.

update_db.sh is useful if you're a developer syncing up a test
database to the latest version of the database schema, or a production
site running master. Otherwise, I'd stay away.


Reply via email to