Thanks for contributing this Christine!
A few points:
Are you sure connection.getMetaData().getDatabaseProductName() does not allow you to differentiate the editions? DB2 LUW does return specific strings for each OS. I am sure this can be solved algorithmically instead of through configuration...
Can you extend the driver detection in DriverDataSource as well?
As I do not, and probably never will have access to a z/OS machine, this will require two things:
Also I will need a pull request for the flyway-3.0 branch of flywaydb.org for the docs.
I agree that it is a better solution if it is possible to decide OS algorithmically instead of through configuration. I will spend more time on this to see if I can change it. I will fix the category, maven profile, and the docs too.
I can't promise that I will have access to z/OS forever, but the customer I work for is starting to use the z/OS version of flyway in great scale. As long as I work for this customer I am happy to support flyway, included the documentation.
I have updated the pull request now. I found a way to get the databaseplatform (zOS) through getMetaData().getDatabaseProductVersion(). This method will always return DSN for zOS and SQL for Linux, UNIX and Windows (LUW).
Since I use the same database-driver for z/OS as for LUW, I can't see that it's necessary to extend DriverDataSource, but tell me if I'm wrong.
I have used DB2zOS for JUnit category og maven profile now, but I not sure if I have misunderstood. Should I do something more than change the name? Couldn't see that I used it other places.
On the code side, could you:
Also please provide a pull request against the flyway-3.1 branch of flywaydb.org containing
I saw in #638 that you fixed the test issue before I had time to respond. Thanks!
About the table space in the metadata table script; IBM has recommended one table per table space because many db/2 utilities operate at the level of the table space. For example, backup and restore work at the table space level. And one table per table space makes it possible to backup/restore individual tables.
For the metadata table, Flyway has to be responsible of specifying the table space. For all the user defined tables, the users are responsible of specifying the table space in the sql scripts.