sqitchers / docker-sqitch

Docker Image packaging for Sqitch
MIT License
35 stars 39 forks source link

Exasol DBD::ODBC 1.59 required to manage Exasol #22

Closed Nicqu closed 4 years ago

Nicqu commented 4 years ago

Hi, This error occurs when I try to deploy changes to an Exasol database.

./sqitch deploy
DBD::ODBC 1.59 required to manage Exasol

It seems that sqitch cannot find the odbc driver even if it is installed in the docker image.

Steps to reproduce the error:

mkdir Schema_test && cd Schema_test
./../sqitch init Schema_test --uri https://github.com/sqitchers/sqitch-exasol-intro/ --engine exasol
./../sqitch config --user engine.exasol.client /opt/EXAplus-6.2.3/exaplus
./../sqitch config --user user.name 'Sqitch-Exasol on Docker'
./../sqitch add appschema -n 'Add schema for all Schema_test objects.'
./../sqitch deploy 'db:exasol://USER:PASS@IP:8563/?Driver=Exasol'
DBD::ODBC 1.59 required to manage Exasol
theory commented 4 years ago

Please see #21. I'll add notes to the Exasol and Vertica READMEs.

Nicqu commented 4 years ago

unfortunately, that didn't help much. I'm getting this error now: [unixODBC][Driver Manager]Data source name not found, and no default driver specified (SQL-IM002)

I couldn't find a solution in https://github.com/sqitchers/docker-sqitch/pull/16

https://github.com/sqitchers/docker-sqitch/issues/12 which asks to run the cmd /usr/bin/perl -MFindBin -E 'use lib "$FindBin::RealBin/../lib/perl5"; use DBD::ODBC; say DBD::ODBC->VERSION' and I get 1.60

Connecting via exaplus and isql works (from inside the docker container)

It feels like, that the /?Driver=Exasol parameter won't work.. -> is the connection string correct? sqitch deploy 'db:exasol://USER:PASS@IP:8563/?Driver=Exasol'

@theory is the exasol-image working for you?

Nicqu commented 4 years ago

Holy moly.. I found the problem. The password contains a # which led to the problem: dsn not found.

theory commented 4 years ago

LOL, ODBC is kind of terrible. :-(