Hey Doug,
As John mentioned, every shop is going to have a different method of deploying changes from Dev through QA to Production. How you do this will be up to your company’s preferences and workflow. John and Lenka have already mentioned Toad DevOps Toolkit, Code Tester, and Benchmark Factory. Each of those products are excellent tools for helping solve development and deployment options in different environments. I’ll let them talk more about those applications and how they can help in your environment. If you’re looking to implement some CI workflows, I would definitely look into Toad DevOps Toolkit as both John and Lenka mentioned.
To answer your first question: rebuild actions are partially integrated into VCS processing. In a rebuild action, the table you end up with will have the same name as the table you started with. The table will requires a check-out before you can rebuild it. You can access those either through the Schema Browser, as John mentioned, or the Team Coding Manager. Once the rebuild is done and the changes are made, all you need to do is check the table back in and its DDL will be saved to the VCS. The rebuild process itself, however, also allows you to keep the old table as a backup if you wish. This backup table will be added to Team Coding’s list of objects it manages, but it won’t automatically add it to the VCS. The reason is because you may only wish to keep the backup around for verification and drop it immediately afterwards. Adding backup tables to the VCS would only clutter the VCS – especially if they are temporary. If you wish to add the backup table to the VCS, all you need to do is check that table out and Team Coding will automatically add it to the VCS.
For your immediate need, I know you’re in a small development shop and are probably looking for some solutions that you can get started with immediately. Toad, itself, is filled with a lot of different tools to help you perform just about any task within Oracle. While Team Coding is primarily designed to manage source and change control within your database environment; you can use other tools within Toad to help you accomplish some of the tasks you’re looking to do. One of the ways people accomplish deployment scripts within Toad is by using the Compare Database, Compare Schemas, Generate Database Script, and Generate Schema Script windows within Toad. The first two windows are designed to compare two data sources and automatically create synchronization scripts between those data sources. You can even automatically save those synchronization scripts off to your VCS provider if you so choose. The latter two, as the name suggests, are designed to create scripts for exact copies of a source database or schema.
So, in your situation, you could use Team Coding connected to your Dev environment to do your source and change control. When you’re ready to move things to testing, you could then use the Schema or Database Compare features within Toad to easily create the synchronization scripts and save those off into a deployment folder within your VCS for documentation purposes. Using the VCS tab of Toad, the person responsible for deployment can then check out and review the synchronization script from the VCS before executing it to your QA environment. If you’re using Oracle 12, you could even choose to have your QA environment sitting within a pluggable database and use Toad to spin a new instance of that database onto which you can execute the script. That way, if you find the changes you made cause the QA environment to fail, you still have the original QA environment available without having to go through a process to restore the previous QA environment.
You can get a quick tutorial on using these options for deployment in a video provided by John P here:
community.toadworld.com/…/1493
Of course, this process is still somewhat manual and isn’t really ideal for implementing continuous integration workflows. For that, you’d want to look into Toad DevOps Toolkit above; however, hopefully it will give you a starting point from which you can decide what process would work best for your environment and your company’s workflow.
-John