Closed BrandonZacharie closed 8 years ago
This is probably an issue with the PostgreSQL JDBC driver. Please use an additional command-line switch
-routines=
so that SchemaCrawler does not attempt to obtain stored procedure metadata. Stored procedures are not shown on graphs anyway, so you will save some time too, this way.
@BrandonZacharie : just for info, could you please tell me which driver you are using ?
Adrien, PostgreSQL driver 9.4.1207 - but this could be because he has user defined data types, perhaps?
Yes, I have defined types (enums, to be specific). Also, procs have names like dk_$person$_getByPhone
. That's legal but worth the mention in case the $
is an issue somehow.
@sualeh Thanks! -routines=
works perfectly. Also, it didn't just save time, it now finishes instantly.
Glad to hear, Brandon. I am not sure why the PostgreSQL driver fails on those procedures - it may have a bug. If you need the stored procedure metadata for any reason, you could try to omit the problematic ones with a regular expression.
I just ran a lint and saw the following:
...
Mar 22, 2016 8:10:15 PM schemacrawler.tools.executable.SchemaCrawlerExecutable executeOn
INFO: Executing as a query, lint
Name is null
...
Mar 22, 2016 8:10:15 PM us.fatehi.commandlineparser.CommandLineUtility logFullStackTrace
SEVERE: Name is null
java.lang.NullPointerException: Name is null
at java.lang.Enum.valueOf(Enum.java:236)
at schemacrawler.tools.options.TextOutputFormat.valueOf(TextOutputFormat.java:27)
at schemacrawler.tools.options.TextOutputFormat.fromFormat(TextOutputFormat.java:42)
at schemacrawler.tools.text.operation.OperationExecutable.getDataTraversalHandler(OperationExecutable.java:141)
at schemacrawler.tools.text.operation.OperationExecutable.executeOn(OperationExecutable.java:72)
at schemacrawler.tools.executable.SchemaCrawlerExecutable.executeOn(SchemaCrawlerExecutable.java:91)
at schemacrawler.tools.executable.BaseStagedExecutable.execute(BaseStagedExecutable.java:86)
at schemacrawler.tools.commandline.SchemaCrawlerCommandLine.execute(SchemaCrawlerCommandLine.java:125)
at schemacrawler.Main.main(Main.java:80)
I used -routines=
as well to get it to work. I'm beginning to think it's not the proc names.
This is a completely different issue. Please open another issue ticket, and I will take care of it.
This worked perfectly before but I have since made many changes to the schema.