You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cayenne.apache.org by Maria Huber <hu...@gmx.de> on 2021/02/06 19:52:42 UTC

cdbimport for SQLite

Hey all,
this time my problem is related to the cdbimport feature (maven or modeller) in combination with SQLite.
SQLite does not support schema, so it's currently not possible to use the reverse engineering feature.

The error you get with Xerial-JDBC driver is:

[WARNING] Error loading db schema
Error loading db schema

java.sql.SQLFeatureNotSupportedException
    at org.sqlite.jdbc4.JDBC4DatabaseMetaData.getSchemas (JDBC4DatabaseMetaData.java:32)
    at org.apache.cayenne.modeler.editor.dbimport.DatabaseSchemaLoader.processSchemas (DatabaseSchemaLoader.java:101)
    at org.apache.cayenne.modeler.editor.dbimport.DatabaseSchemaLoader.processCatalogs (DatabaseSchemaLoader.java:92)
    at org.apache.cayenne.modeler.editor.dbimport.DatabaseSchemaLoader.load (DatabaseSchemaLoader.java:58)
    at org.apache.cayenne.modeler.action.LoadDbSchemaAction.loadDataBase (LoadDbSchemaAction.java:116)
    at org.apache.cayenne.modeler.action.LoadDbSchemaAction.lambda$performAction$0 (LoadDbSchemaAction.java:96)
    at java.lang.Thread.run (Thread.java:844)

or

[INFO] Exception on reverse engineering
java.sql.SQLFeatureNotSupportedException
    at org.sqlite.jdbc4.JDBC4DatabaseMetaData.getSchemas (JDBC4DatabaseMetaData.java:32)
    at org.apache.cayenne.dbsync.reverse.filters.FiltersConfigBuilder.processSchemas (FiltersConfigBuilder.java:117)
    at org.apache.cayenne.dbsync.reverse.filters.FiltersConfigBuilder.processCatalogs (FiltersConfigBuilder.java:107)
    at org.apache.cayenne.dbsync.reverse.filters.FiltersConfigBuilder.preBuildFilters (FiltersConfigBuilder.java:87)

getSchemas() throws this exception.

This error could be related to https://issues.apache.org/jira/browse/CAY-2600
Any idea how to use cdbimport without schema?

Kind regards,
Maria

Re: cdbimport for SQLite

Posted by Nikita Timofeev <nt...@objectstyle.com>.
Hi All,

SQLite should generally work. Moreover, we have a fix for this
particular issue [1], I just need some time to check it.

[1] https://github.com/apache/cayenne/pull/446

On Mon, Feb 8, 2021 at 10:18 AM Andrus Adamchik <an...@objectstyle.org> wrote:
>
> Hi Maria,
>
> CAY-2600 is a related, but separate issue. Here is the one that matches your problem: https://issues.apache.org/jira/browse/CAY-2695 <https://issues.apache.org/jira/browse/CAY-2695> . I just updated it with your description. I hope we can fix this specific problem as I mentioned in the Jira. But IIRC SQLite driver had deeper issues with DB metadata, so I suspect it may fail at some other step.
>
> @Nikita - do you remember what other limitations we had with SQLite? Or does it finally start to work?
>
> Andrus
>
>
>
> > On Feb 6, 2021, at 10:52 PM, Maria Huber <hu...@gmx.de> wrote:
> >
> > Hey all,
> > this time my problem is related to the cdbimport feature (maven or modeller) in combination with SQLite.
> > SQLite does not support schema, so it's currently not possible to use the reverse engineering feature.
> >
> > The error you get with Xerial-JDBC driver is:
> >
> > [WARNING] Error loading db schema
> > Error loading db schema
> >
> > java.sql.SQLFeatureNotSupportedException
> >    at org.sqlite.jdbc4.JDBC4DatabaseMetaData.getSchemas (JDBC4DatabaseMetaData.java:32)
> >    at org.apache.cayenne.modeler.editor.dbimport.DatabaseSchemaLoader.processSchemas (DatabaseSchemaLoader.java:101)
> >    at org.apache.cayenne.modeler.editor.dbimport.DatabaseSchemaLoader.processCatalogs (DatabaseSchemaLoader.java:92)
> >    at org.apache.cayenne.modeler.editor.dbimport.DatabaseSchemaLoader.load (DatabaseSchemaLoader.java:58)
> >    at org.apache.cayenne.modeler.action.LoadDbSchemaAction.loadDataBase (LoadDbSchemaAction.java:116)
> >    at org.apache.cayenne.modeler.action.LoadDbSchemaAction.lambda$performAction$0 (LoadDbSchemaAction.java:96)
> >    at java.lang.Thread.run (Thread.java:844)
> >
> > or
> >
> > [INFO] Exception on reverse engineering
> > java.sql.SQLFeatureNotSupportedException
> >    at org.sqlite.jdbc4.JDBC4DatabaseMetaData.getSchemas (JDBC4DatabaseMetaData.java:32)
> >    at org.apache.cayenne.dbsync.reverse.filters.FiltersConfigBuilder.processSchemas (FiltersConfigBuilder.java:117)
> >    at org.apache.cayenne.dbsync.reverse.filters.FiltersConfigBuilder.processCatalogs (FiltersConfigBuilder.java:107)
> >    at org.apache.cayenne.dbsync.reverse.filters.FiltersConfigBuilder.preBuildFilters (FiltersConfigBuilder.java:87)
> >
> > getSchemas() throws this exception.
> >
> > This error could be related to https://issues.apache.org/jira/browse/CAY-2600
> > Any idea how to use cdbimport without schema?
> >
> > Kind regards,
> > Maria
>


-- 
Best regards,
Nikita Timofeev

Re: cdbimport for SQLite

Posted by Andrus Adamchik <an...@objectstyle.org>.
Hi Maria,

CAY-2600 is a related, but separate issue. Here is the one that matches your problem: https://issues.apache.org/jira/browse/CAY-2695 <https://issues.apache.org/jira/browse/CAY-2695> . I just updated it with your description. I hope we can fix this specific problem as I mentioned in the Jira. But IIRC SQLite driver had deeper issues with DB metadata, so I suspect it may fail at some other step.

@Nikita - do you remember what other limitations we had with SQLite? Or does it finally start to work?

Andrus



> On Feb 6, 2021, at 10:52 PM, Maria Huber <hu...@gmx.de> wrote:
> 
> Hey all,
> this time my problem is related to the cdbimport feature (maven or modeller) in combination with SQLite.
> SQLite does not support schema, so it's currently not possible to use the reverse engineering feature.
> 
> The error you get with Xerial-JDBC driver is:
> 
> [WARNING] Error loading db schema
> Error loading db schema
> 
> java.sql.SQLFeatureNotSupportedException
>    at org.sqlite.jdbc4.JDBC4DatabaseMetaData.getSchemas (JDBC4DatabaseMetaData.java:32)
>    at org.apache.cayenne.modeler.editor.dbimport.DatabaseSchemaLoader.processSchemas (DatabaseSchemaLoader.java:101)
>    at org.apache.cayenne.modeler.editor.dbimport.DatabaseSchemaLoader.processCatalogs (DatabaseSchemaLoader.java:92)
>    at org.apache.cayenne.modeler.editor.dbimport.DatabaseSchemaLoader.load (DatabaseSchemaLoader.java:58)
>    at org.apache.cayenne.modeler.action.LoadDbSchemaAction.loadDataBase (LoadDbSchemaAction.java:116)
>    at org.apache.cayenne.modeler.action.LoadDbSchemaAction.lambda$performAction$0 (LoadDbSchemaAction.java:96)
>    at java.lang.Thread.run (Thread.java:844)
> 
> or
> 
> [INFO] Exception on reverse engineering
> java.sql.SQLFeatureNotSupportedException
>    at org.sqlite.jdbc4.JDBC4DatabaseMetaData.getSchemas (JDBC4DatabaseMetaData.java:32)
>    at org.apache.cayenne.dbsync.reverse.filters.FiltersConfigBuilder.processSchemas (FiltersConfigBuilder.java:117)
>    at org.apache.cayenne.dbsync.reverse.filters.FiltersConfigBuilder.processCatalogs (FiltersConfigBuilder.java:107)
>    at org.apache.cayenne.dbsync.reverse.filters.FiltersConfigBuilder.preBuildFilters (FiltersConfigBuilder.java:87)
> 
> getSchemas() throws this exception.
> 
> This error could be related to https://issues.apache.org/jira/browse/CAY-2600
> Any idea how to use cdbimport without schema?
> 
> Kind regards,
> Maria