Subject Re: [firebird-support] Converting FB1.5 to FB2.2
Author Helen Borrie
At 08:26 AM 22/11/2008, you wrote:
>Hi - am attempting to restore a FB1.5 db to FB2.2 using GBAK. I know
>dates are more sensitive and am getting error messages on the restore
>concerning dates out of range. I have trawled thru the table in
>question but cannot find any that have silly values.

It sounds possible you have a dialect 1 database there. Under the 1.5 server, could you do a SHOW DATABASE (in isql) or a gstat -h to find out what you are dealing with...

Need to find out:

1. SQL dialect (not sure if gstat -h in 1.5 shows this, might need SHOW DIALECT in isql)

2. On-disk structure (ODS).

3. Page size - this matters for Fb 2 and up.

Was this DB inherited from InterBase 5.x? Has it ever been restored under Fb 1.5? I would want to try that first, restoring with the -create_database switch.

>Is there a way of restoring in such a way invalid dates are set to null instead?

Before you try to "fix" a problem, you need to identify what the problem actually is.

BTW, there is no "Firebird 2.2". The current release versions are 2.0.4 (with 2.0.5 in pre-release right now) and 2.1.1 (with 2.1.2 due before the end of the year). With a migration you are likely to bump into all sorts of problems if you have a very old legacy database so it's important that you know *what* you are migrating from and to.

You can pick up the IB 5-to-IB 6 migration guide from the IBPhoenix website (on the InterBase Downloads page). It explains what types of data need to be fixed for a migration. However, the inbuilt tools described there for migrating dialect do NOT work properly. The recommended way to move from D1 to D3 is to create a fresh, empty database with the proper D3 definitions and pump the data into it.

It would probably make more sense for you to aim for a conservative migration, i.e., fix up the DB's problems under 1.5.whatever and migrate a "clean" 1.5.x database to 2.0.4 or 2.0.5, as an intermediate step towards 2.1.1 or 2.1.2.

There is also a Migration guide for 1.5.x to 2.x. It is in the v.2.0.4 release notes and as a separate document in the 2.1.x kits (also from the Doc Index at the Firebird website).

Note, a v.2.x server *can* read an old database. One thing that might reveal something is to open a file copy of the old DB under the newer server version and do some queries, to see if you can find out what it's objecting to, e.g., ODS 9 DATE columns (which are like ODS 10+ TIMESTAMP and not like ODS 10+ DATE).

If you come back with more questions, make sure you provide correct info about the versions of everything.

./heLen