Is there any CI/CD tool for Netezza that can manage versions and can be used for migrating code across environments? We have used flywaydb for other databases and are happy with it, but that does not support Netezza. I have already googled and did not find a single tool, so any responses are good for me to begin analyzing further
-
I am not sure why this was voted down. If you are voting down, let me know the reason as well, I don't have any other means to know why a perfectly valid question in my opinion was voted down – Ram Feb 04 '16 at 15:16
-
I'm not all that sure, either. It edges on the too-broad, but I don't think that it is. – Jeremy Fortune Feb 05 '16 at 11:36
1 Answers
To my knowledge, there's nothing specifically geared for Netezza. That said, with a bit of understanding of your target environment, it's certainly possible.
We use git and GitHub Enterprise (GHE). The reason for GHE is not particular to this solution, but rather because I work at a hospital. Here's what we do.
Setup
- Build a repository at
/home/nz
on your production server. Depending on how you work nzlogs, nzbads, and other temporary files, you may need to fiddle quite a bit with the.gitignore
file. We have dedicated log directories where temporary files should reside. - Push that repo into GHE.
- If you have a development server, clone the repo in the
/home/nz
directory on that server. Clearly you'll lose all development work up until that point and will want to make sure that things like.bashrc
are not versioned. Alternatively, you could set up a different branch and repo and try merging the prod and dev versions. We did this, but I'd recommend just wiping your development box with production code one slow day. - Assign your production box a dedicated branch in git. For this discussion, I'll call them
prod
anddev
. Do the same for development, if you have it. This is mainly a mental thing, not a tech thing, but it's crucial, like setting up a remote for Heroku or Azure. Find or develop a tiny web server that can listen for GitHub webhooks. I built a Sinatra server with a simple configuration file. Anything will do. Deploy the web server to each of the environments and tune them to perform the following activities on an update to the
prod
ordev
branches, respective to the server.git reset --hard
git clean -f
git pull
Set up webhooks in your GHE repository to send the push event to the web servers.
Of course, you can always have the web server do other things on a branch update if you want to get fancy (maybe update cron from a versioned file or update schemas from all new files).
Process
Fairly simply, follow the GitHub Flow workflow. You can pretty much follow whatever process you want with the understanding that your prod
and dev
branches should be protected and only removed or futzed with as an admin task. Create a feature branch, test it by pushing to dev
, and then make a pull request for the prod
branch.
Why GHE? Mainly because it keeps an open area where our code is available. You could absolutely do this by pushing directly to Netezza's git repo, but your workflow will suffer--it just isn't as clean as having all code in one clear place with discussion around pull requests.

- 2,459
- 1
- 18
- 21