I'm currently running an Oracle Autonomous Data Warehouse (Oracle's cloud-based database offering) on version 19c. I have a development database on the Always Free Tier and my production database is a paid instance (with backups etc). I will likely also be making a staging instance soon.
When making changes to the database schema we have been making changes to my database schema as follows:
- Change schema on the development environment using SQL statements (
CREATE
,ALTER
, etc) - Test the development environment manually
- Change the schema on the production environment using identical SQL statements
- Test the production environment to make sure nothing is broken
I am aware that this is not the way it should be done, we need to implement some CI/CD to streamline these changes but we've only recently come out of our piloting phase where it was a rush to get the product working etc, I'm very keen to firm up our new systems.
How I'm imagining it'd go (changes in bold):
- Change schema on the development environment using SQL statements (
CREATE
,ALTER
, etc) - Test the development environment with automated tests
- Apply some tool to apply the same changes to my production system
- Test the production environment to make sure nothing is broken
I have seen that tools exist for other SQL database tools, such as MySQL, PostgreSQL etc but from my searches on Oracle-specific tools, I'm not sure if where to find a tool that can propagate the schema changes from our development database to a production database.
If you know of any tools that I can look at to do this functionality then I'd appreciate a pointer on where to look!
I'm aware this is similar to other questions, the ones I've looked at are:
- Altering db schema in production environment
- Upgrade production database during software development lifecycle
Both of these questions were asked several years ago and so I'm not sure if new things have come up recently.