Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for generating changelogs #21

Open
sunsear opened this issue May 4, 2020 · 5 comments
Open

Support for generating changelogs #21

sunsear opened this issue May 4, 2020 · 5 comments
Assignees

Comments

@sunsear
Copy link

sunsear commented May 4, 2020

Hi Datical / Nathan,

We are looking at this plugin in order to use for automating our Teradata Database creation. The plugin doesn't include this according to earlier issues I found about an error Database 'information_schema' does not exist.

I see you are working on making this plugin work again with Liquibase 4.0. That leads me to believe it is at least a current plugin. Are there plans to include this changelog creation for Teradata? It seems like a sizeable job if I look at the code in the snapshots package. We are looking at this in order to use Liquibase. I would be able to contribute a few days of development time, but probably not more than that. Can we make something work in that amount of time, or is adding a new database a monster project?

Look forward to hearing from you,

Martin

┆Issue is synchronized with this Jira Bug by Unito

@r2-lf
Copy link
Contributor

r2-lf commented May 21, 2020

Hi, Martin!

I don't think it's a huge challenge. We certainly have examples of generateChangeLog in other extensions. Maybe that would be helpful. @nvoxland is going to look for his favorite and get that to you.

Another thing that might be helpful is the automated Travis builds on PR's: https://travis-ci.com/github/liquibase/liquibase-teradata. Can you access that?

Thanks!

Robert

@nvoxland
Copy link
Contributor

Yes, the snapshot work can be a sizable effort. But, it depends on the database a bit too. The main liquibase code tries to be as cross-database as possible, but the metadata queries tend to be some of the least standarized things databases do.

We're working on an improved, standard integration test system that makes it easier to automatically find where the standard code doesn't work for your particular database, but in the mean time it's basically creating creating objects in your database and then calling "liquibase snapshot" or "liquibase generateChangeLog" to see what gets picked up correctly and what does not.

For examples, you can see the Vertica extension (https://github.com/liquibase/liquibase-vertica/tree/master/src/main/java/liquibase/ext/vertica/snapshot) and Hana extensions (https://github.com/liquibase/liquibase-hana/tree/master/src/main/java/liquibase/ext/hana/snapshot) for what they've been doing.

The final thing to remember with snapshots/metadata is that it is usually easy to hit the main things people want, but then there is really no end to how deep the path goes down. Making sure you can snapshot simple tables, columns, indexes, etc. on your database is usually pretty straightforward and covers most of what people want. But, then you have things like primary keys that are backed by specific indexes, or inherited tables, or whatever that your datatabase can support but isn't in the snapshot support yet.

@sunsear
Copy link
Author

sunsear commented May 23, 2020 via email

@r2-lf
Copy link
Contributor

r2-lf commented May 29, 2020

Martin, the sql and sqlFile attributes should work for you. That's absolutely OK to include sql that is specific to your database platform. Does that work for you?

@sunsear
Copy link
Author

sunsear commented May 29, 2020 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants