0

My SQLite database has a virtual table that is created by using the spelfix1.dll extention.

Is there any solution to load this extention in schemacrawler?

When I try to create the graphic with

schemacrawler --server=sqlite --database=/home/schcrwlr/share/database.db --info-level=minimum --command=list --output-file=/home/schcrwlr/share/output.png

after starting the container with

C:\Users\user>  docker run `
-v ${PWD}:/home/schcrwlr/share `
--name schemacrawler `
--rm -i -t `
--entrypoint=/bin/bash `
schemacrawler/schemacrawler:v16.16.6

Schemacrawler execution stop because the extenion is missing according to the log-files

Caused by: schemacrawler.schemacrawler.exceptions.WrappedSQLException: Could not retrieve table columns for table <lang_store>: [SQLITE_ERROR] SQL error or missing database (no such module: spellfix1)

and

Caused by: org.sqlite.SQLiteException: [SQLITE_ERROR] SQL error or missing database (no such module: spellfix1)

I work in the Windows PowerShell on Win10.

Environment:
  SchemaCrawler 16.16.6
  Linux 5.10.16.3-microsoft-standard-WSL2
  Oracle Corporation OpenJDK 64-Bit Server VM 17-ea+14
  SQLite 3.36.0
  SQLite JDBC 3.36.0.3
tomko
  • 54
  • 7

1 Answers1

1

This is more a question about the SQLite JDBC driver than about SchemaCrawler. The SchemaCrawler Docker image comes bundled with SQLite JDBC driver and does not allow for reading of external extension libraries for security reasons. If you really wanted to do this, you would have to use the regular distribution of SchemaCrawler and provide the extension DLL file in the lib folder. Or you could build your own Docker image with this extension, based on the SchemaCrawler Docker image. All of this seems like too much work.

Your best bet is the strip the schema of the virtual tables and run SchemaCrawler again. Please take a look at the procedure for doing this in the answer to Reflecting sqlite database with spellfix1 tables

Sualeh Fatehi, SchemaCrawler

Sualeh Fatehi
  • 4,700
  • 2
  • 24
  • 28