Error running dbDoc on a Sybase database

Can you try it with Liquibase 3.1.0? There were some improvements to sybase handling that may have fixed the problem.

Nathan

Quick update on this.


I am making progress on getting the diff command working. I have had to make a few changes to SybaseDatabase.java namely:

  1. Override supportsSchemas to return false

  2. Override correctSchema to be the identity function

  3. Override escapeObjectName to use “…” as a separator between catalog name and object name rather than “.”


The diff command now runs and produces some output. It now recognises differences between views but there is still a problem with tables so still some work to be done.


Dave

As you make progress, make sure to send a pull request on github so I can get it incorporated.


Nathan

I am off on holiday until Monday. Will hopefully send request early next week.


Dave



Sounds good. I’ll be off next week so you can take your time.


Nathan

Hi,


I have just downloaded liquibase 3.0.8 in order to evaluate it for my company.

My OS is Red Hat Enterprise 5.6. And I am using java 1.7. Connecting to a Sybase 15.0.2 dataserver.

I have a properties file that looks like this:


  1.         at liquibase.executor.jvm.JdbcExecutor.query(JdbcExecutor.java:118)


Any ideas as to how I can get this to work?


Thanks,

Dave

I have downloaded and installed 3.1.0 and the doc command now works. Thanks.


However I am having problems with my next test. I am trying the “diff” command. I am diffing the same schema on 2 dataservers (a dev server and a prod server). I know that there are some differences. In particular prod has 2 tables that do not exist on dev.


I am using the following command:

./liquibase --logLevel=debug --driver=com.sybase.jdbc3.jdbc.SybDriver --url=jdbc:sybase:Tds:myprodserver:1400/myschema --username=me_reader --password=my_password --defaultSchemaName=myschema diff --referenceUrl=jdbc:sybase:Tds:mydevserver --referenceUsername=me_reader --referencePassword=mypassword


The debug output shows that it is connecting to the correct databases and schemas however is claims that there are no differences at all. And I know that there are 2 tables in prod and are not in dev.

I have tried reversing the comparison but get the same results.


Neither schema has the DATABASECHANGELOG or DATABASECHANGELOGLOCK tables. Are they required for the diff command to work?


Also, is it possible to compare 2 schemas of different names? For example if I have a schema called “northwind” and a schema called “northwind_test” on the same server how can I compare them? Judging by the debug output it uses the default schema for the user unless there is a defaultSchemaName parameter. But there does not appear to be a referenceDefaultSchemaName parameter.


Thanks,

Dave

I have been looking into this and I think that the problem is something to do with the Snapshot generation.


As far as I can tell (and I am just looking at this codebase for the first time) the Snapshot does not have any data in it at all. 


Dave