Oracle - Version control

Posted on 2007-07-29
Medium Priority
Last Modified: 2013-12-18
Hi all,

Can anyone recommend on a Source-control/Version-control tool they have experience with?

We are currently using TOAD's team-coding, integrated with Microsoft VSS, but only since we are not aware of any other means of keeping code history.

I am looking for anything that might be suitable  some piece of software, that helps keeping history of PL/SQL code, optionally helping to keep also history of table structure. This software might also be able to maintain multi-versions/branches, and also automatic Schema script generation.

Anything you know of would be great.

Question by:opengaming

Accepted Solution

jtrifts earned 252 total points
ID: 19591486
Not sure exactly what you mean in terms of "keeping a history". Most SCM (Source Control Management) tools will store the "delta" when making a change -- i.e. it stores the difference between successive revisions of a file.  Examples of this include good old Unix RCS, PVCS, CVS etc.

With CVS and PVCS for example, you can run a diff report between versions in a single archive, a version in the archive and on the file server, or in different archives.  When you make changes to code however, that is the time to be documenting what the changes are.  Ideally you put these into the version history comments when you check the object back into the repository.

Generally, with SCM tools though, you get what you pay for. Subversion, for instance is free to use are many versions of CVS interfaces -- but of course you won't get the support that you get when you pay a premium for example, when you license PVCS.

I don't know of ANY SCM tool that keeps track of table/schema type changes -- as this would need to be more "intelligent" than current SCM tools are. This is due to the fact that an SCM tool is generally software agnostic -- i.e. it does not understand the detail of underlying objects you are storing. To PVCS, what is the difference between a SQL script which creates tables, a PL/SQL script which creates a package/procedure/function, and a C# script? Nothing. It's all text (or in other cases, binary -- depends on the storage mechanism).  

That said, if you use a tool such as Oracle DEsigner, you can develop successive versions of design which CAN be versioned within its own repository and then you can generate the scripts which build the database (and its schemas) -- but still this doesn't meet your requirement.

Do you think you could explain a bit more about what you want, and WHY and WHAT such a feature list would offer you?  It could be that your question is for a more specific purpose and that we might be able to find an alternative to meet the *real* requirement.

LVL 23

Assisted Solution

David earned 248 total points
ID: 21182481
Something free, something easy, or something fast? <grin>
With 10g I love using DataPump to extract the DDL as metadata, and it can generate the re-create scripts automatically.  The poor person's approach to tracking package changes can be as simple as saving them them with a consistent date-time suffix.  We then track which version is in a release by means of a spreadsheet.

Featured Post

NFR key for Veeam Backup for Microsoft Office 365

Veeam is happy to provide a free NFR license (for 1 year, up to 10 users). This license allows for the non‑production use of Veeam Backup for Microsoft Office 365 in your home lab without any feature limitations.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Truncate is a DDL Command where as Delete is a DML Command. Both will delete data from table, but what is the difference between these below statements truncate table <table_name> ?? delete from <table_name> ?? The first command cannot be …
Background In several of the companies I have worked for, I noticed that corporate reporting is off loaded from the production database and done mainly on a clone database which needs to be kept up to date daily by various means, be it a logical…
Video by: Steve
Using examples as well as descriptions, step through each of the common simple join types, explaining differences in syntax, differences in expected outputs and showing how the queries run along with the actual outputs based upon a simple set of dem…
This video shows how to recover a database from a user managed backup
Suggested Courses
Course of the Month15 days, 20 hours left to enroll

850 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question