Cannot reverse engineer PostGre 8.3 database

Hello there,

We are currently evaluating TDM, everything seems to work fine with our PostGre 8.3 server except the reverse engineering part.

I got the following error whenever I try to reverse engineer something :

Source: CS3 - Internal error
Script: REDataMigratorDBPG83
Description: ERROR: column t.typmodin does not exist
LINE 1: …id = t.typsend OR p.iod = t.typanalyze OR p.iod = t.typmodin
^

Row: 1994
Colum: 3

Callstack:
“REDataMigratorDBPG83” from package “Object RE Database for PostgreSQL 8.3”

  • We use : TDM 3.3.7.22
  • We’ve tried both Native connection and ODBC connection
  • the problem occur in the last step, once the tables are listed and checked, I click on the Execute button
  • No error message in the log area

Could you please help us fix this ? Is it related to a specific configuration of our server ?

Thanks a lot !

EDIT: I forgot to say that our PostgreSQL server is a EnterpriseDB 8.3 server I read on the net that this may make a difference for you.

I found the following on the EDB forums, but it lacks details ! :

"I recommend using Toad Data Modeler 3 withEnterpriseDB. Thank Dusty from EnterpriseDB, I found out thatEnterpriseDB are working with Quest Software to make Toad Data Modeler3 more compatible with EnterpriseDB. The software does not fullysupport EnterpriseDB but there are a few tricks to get around them. Irecommend the following in Toad Data Modeler 3:

  • Use Postgres Physical Model, I will show below how to declare the packages and stored procedures in TDM
  • In Postgres connector wizard, but use the EnterpriseDB postgresplus library (the directions in Toad to setup the library are outdated
  • Reverse Engineer the EDB database use the Postgres connector above, it works!
  • Oracle Physical Model has problems with domain variable types, still looking for a way to overcome this bug in TDM

Thanks again to Dusty from EnterpriseDB and Michael O from Control Group (NYC)"

Message was edited by: Manny

Hello Manny,

Please make sure you are connecting to PG 8.3.

We encounter the problem when we use PG 8.3 connection/support for connecting to PG 8.2 or PG 8.1.

How you can find it out:
Please have a look at the Log area where from the very beginning of the RE process the information on the database is written. Nevertheless, if it is PG 8.3, please send us the whole Log/Message Explorer (right-click and select Save Messages).

Thanks.

(You can send it to modeling@quest.com or here)

Regards,

Vladka + TDM Team

Hello Vladka,

Thanks a lot for your answer.
I just edited my initial post to give our version of PostGreSQL : EnterpriseDB 8.3.0.12

Here is the log you requested :

286 | 21/01/2009 11:29:51 | Native Data Provider is connected | Host=bp-dev-lyon.pern.theralys.com; Database=eolart; UserId=eolart; | 1034 | 1 | 3776| 45
287 | 21/01/2009 11:29:51 | Connecting to database | | 1002 | 1 | 3400| 45
288 | 21/01/2009 11:29:51 | ----------------- | | 1002 | 1 | 3400| 45
289 | 21/01/2009 11:29:51 | PostgreSQL version: EnterpriseDB 8.3.0.12 on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.1.0 | | 1002 | 1 | 3400| 45
290 | 21/01/2009 11:29:51 | Current database: eolart | | 1002 | 1 | 3400| 45
291 | 21/01/2009 11:29:51 | Current user: eolart | | 1002 | 1 | 3400| 45
292 | 21/01/2009 11:29:51 | Current schema: public | | 1002 | 1 | 3400| 45
293 | 21/01/2009 11:29:51 | ----------------- | | 1002 | 1 | 3400| 45
294 | 21/01/2009 11:29:51 | Reversing tables… | | 1002 | 1 | 3400| 45
295 | 21/01/2009 11:29:51 | DONE | | 1002 | 1 | 3400| 45
296 | 21/01/2009 11:29:51 | Disconnected from database | | 1002 | 1 | 3400| 45
297 | 21/01/2009 11:30:00 | Connecting to database. | | 1002 | 1 | 3396| 45
298 | 21/01/2009 11:30:00 | Reversing functions… | | 1002 | 1 | 3396| 45

Hello Manny,

Thank you for your reply.

Here’s what we have found out:

EnterpriseDB is available in two versions:
a) EnterpriseDB Postgres Plus 8.3
This version is compatible with PostgreSQL 8.3 and Toad Data Modeler works with it without problems, including the reverse engineering.

b) EnterpriseDB PostgreSQL Plus Advanced Srvr
This version is different in comparison with PostgreSQL 8.3. For example, in PG 8.3 (and also EnterpriseDB Postgres Plus 8.3) there are e.g. Enum data type and other parameters in definition of Base Type. The differences cause the problems during RE.

What we can suggest:
If you do need to use the EnterpriseDB PostgreSQL Plus Advanced Srvr version, we suggest to use PostgreSQL 8.2 for reverse engineering. The reason is that the EnterpriseDB PostgreSQL Plus Advanced Srvr db seems to be most similar to PG 8.2. We have tried it on our simple database and the reverse engineering worked fine.

In any case, I’ve created a CR for our developers to enhance the support for EnterpriseDB PostgreSQL Plus Advanced Srvr. (CR # 58 135).
Thanks for your patience.

We hope this information will help you.

Regards,

Vladka + TDM Team

Hello Vladka,

You are right, we are using the advanced server version (and we need some of its functionnalities).
I will try using the PostgreSQL 8.2 definition to reverse engineer and let you know if this works.

Thanks a lot for your quick and detailed replies, this is yet another reason for us to go with TDM ! I really appreciate your efforts to find a workaround for us.

I will also discuss with EDB to know if they intend to provide you with information (they stated on their forum that they work with Quest to improve EDB support in Toad).
Advanced server is their Flagship, this would be in everyone’s interest.

Thank you again and best regards,
Manny

Hi again,

Using the Postgresql 8.2 mode instead of 8.3 fixed everything.
Thanks a lot for your help !

Best regards,
Manny

Great, Manny! Thanks for letting us know!

In case of any questions or problems, please do not hesitate to write us.

Have a nice day.

Vladka + Team