Hi Brian,

Specifying "upgrade=true" on an already upgraded database should be harmless. Here's how to determine if the database needs to be upgraded:

1) The database needs to be upgraded if the (two digit) on-disk version of the database is less than the leading two digits of the Derby release identifier.

2) The on-disk version of the database can be obtained by the following query. Note this is not part of Derby's public API and so could change in the future. However, this part of the API has remained stable for the last 4 years:

values ( syscs_util.syscs_get_database_property( 'DataDictionaryVersion' ) )

3) The release identifier can be obtained via sysinfo.

Hope this helps,
-Rick

[EMAIL PROTECTED] wrote:
How do I tell if the database needs to be upgraded? Or is there no impact if I specify "upgrade" but one is not necessary?

Brian


On Mon, Dec 8, 2008 at  8:43 AM, Rick Hillegas wrote:

Brian Peterson wrote:
I'm trying to figure out how to determine what connection parameters for an embedded database I should use when there might not be a database in place (so "create=true"), or there might be an older version already in place (so "upgrade=true"), or there might already be a database of the right version
in place (so "create" or add nothing to the URL).

I read that "upgrade" and "create" cannot both be specified in the
connection URL. If I'm putting out a release of my application that uses the latest version of Derby (10.4) while a previous version used 10.2.2, what are the recommended steps for making the connection to the Derby database if one is already present? (Note that I have to handle this programmatically as
part of the application startup.)

Do I first try a URL with "create" and see if there's an error, and if so, follow up with a call with "upgrade"? Or do I have the procedure always use
"upgrade" and follow up with a URL with "create" if it fail to make a

Hi Brian,

Your first approach sounds good to me:

1) Bring up the database, specifying "create=true"

2) If you get the warning that the database already exists, then bring down the database and reboot it in upgrade mode

Regards,
-Rick
connection?

Brian





Reply via email to