Version Control for PL/SQL
Customer SpotlightSuccess Story:
Manages over 20,000 packages
Rhenus Logistics, leading logistics service company from Germany, uses this solution.
Packages are spread over 30+ schemas
System Architect Michiel Arentsen blogs about the project at: http://michielarentsen.blogspot.com/
Agile
How does it work?
Edit PL/SQL Objects as usual in your favorite editor.
Log in to Gitora in your editor (can be done automatically in most cases).
Use Gitora API’s or Gitora GUI to perform version control tasks.
A database trigger listens to DDL events.
Version control commands update the database.
Only executes what’s changed in the DB. (Very fast!)
Gitora consists of a DB schema and some Java.
Working Directory
How does it work?
Edit PL/SQL Objects in your favorite editor.
Log in to Gitora in your editor.
API’s or GUI to perform tasks.
A database trigger listens to DDL events.
Executing version control commands update the database.
Only executes what’s changed in the DB. (Very fast!)
Gitora consists of a DB schema and some Java.
Working Directory
version_control.login(…)
version_control.checkout(…)
version_control.release(…)
version_control.doCommit(in_repoName_tx…)
version_control.createBranch(in_repoName_tx…)
version_control.setActiveBranch(in_repoName_tx…)
version_control.merge(in_repoName_tx…)
version_control.pull(in_repoName1_tx…)
version_control.clone(in_repoName1_tx…)
Key Features: • Enforces version control at database level. No way
around it. • Works with every tool (TOAD, SQL Developer etc…) • Creates an audit trail of who changed what, when
and why • Easy to use with a GUI. No need to be a Git expert • Enables edits to the same logical object by multiple
developers • Manages all database objects • Moves your changes between databases
automatically • Perform common version control tasks
Traditional PL/SQL Development
Queued access
Blocking
Interrupting
DEV RELEASE TEST INTEGRATION QA
Manual deployment
USER ACCEPTANCE PREPROD PROD
Intermingled projects, features, hot fixes
Practically impossible to branch, merge
Developers are expected to follow version management rules manually.
Version control repo is a last resort back up
or any other version control system
1..n database servers
Manual
No automated testing
PL/SQL Development with Version Control Step 1 (One Repository)
Queued access
Blocking
Interrupting
DEV
Automatic deployment
USER ACCEPTANCE HOTFIX
PREPROD PROD
Intermingled projects, features
Basic branching and merging is possible for hot fixes
Version control rules are enforced at the DB level.
Source code is in Git
Automatic Script Generation
RELEASE TEST INTEGRATION QA
Development on DEV only. On some other DB’s bug fixes may be allowed.
Faster hot fixes Better automatic testing
PL/SQL Development Step 2 with Version Control (One Repository)
Fewer Queues
Less Blocking
Less interruption
DEV1
Automatic deployment
PROD
Less intermingled projects, features
Basic branching and merging is possible
Source code is in Git
Automatic DDL Script Generation
RELEASE TEST HOTFIX INTEGRATION QA USER ACCEPTANCE PREPROD
Hot fixes delivered faster
DEV2N DEV servers DEV1, DEV2, DEV3,…DEVN
Better automatic testing
Development on DEV only. On some other DB’s bug fixes may be allowed.
Version control rules are enforced at the DB level.
PL/SQL Development Step 3 with Version Control (One Repository)
No Queues
No Blocking
No Interruptions
Automatic deployment
PROD
No blocking between projects, features
Branching and merging is possible
Source code is in Git
Automatic DDL Script Generation
RELEASE TEST HOTFIX INTEGRATION QA USER ACCEPTANCE PREPROD
Faster hot fixes
Project Server [1..N]
RELEASE TEST INTEGRATION QA
Every developer works in a private environment. Each private environment can be switched to a branch.
Great automated testing
Version control rules are enforced at the DB level.
Show Don’t Tell