SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
How to use Version
Control in APEX projects?
Oliver Lemm
APEX Connect
26.04.2016
Facts & Figures
Independent Technology House
with Cross-Industry Expertise
Headquarter
Ratingen
(North Rhine – Westphalia)
240
Employees
Founded
1994
Branches
Dortmund, Cologne,
Frankfurt
Top Company
for Trainees &
Students
Privately-
Owned
Corporation
Oracle
Platinum
Partner
24 Mio. Euro
Revenue
2
about me
 Oliver Lemm
 since february 2007 working for MT AG in Ratingen
 Competence Center Leader APEX & Service Center Leader APEX
 Diploma applied computer science at the university of Duisburg-Essen
 Projectleader, IT-Architect and Developer
 working with Oracle Databases and Oracle Application Express since 2007
 Blog http://oliverlemm.blogspot.de
 Twitter https://twitter.com/OliverLemm
3
Agenda
1. Motivation
2. Version Control
3. Versioning APEX Application
4. Versioning Database Objects
5. Versioning external Files
4
Motivation
5
Motivation
„make it visible what has changed, who changed it and when was the change“
„create a snapshot of the whole scripts of a delivered software“
„define a central repository for the code“
„make it possible to automate testing and deployment“
6
Version Control
Version Control
Revision
Control
Numbers
Source Control
Files
Source Code
Management
„SCM“ Software
Configuration
Management
7
Version Control
 proprietary and local
 PVCS since 1985
 Open Source & Client Server
 CVS since 1986
 Subversion / SVN since 2000
 Distributed
 Git since 2005
 GitHub – web-based Git repository
8
software history
Version Control
 you need a repository server
 direct commit into repository
 revision and version central
 version history only on server
 Central approach supports security and rights management
9
Subversion
working directory
repository
Source Control
10
keywords
commit merge diff update
trunk tag branch
Version Control
 there is no repository server
 all operations are locally
 sync mechanism for distributed systems
11
Git
working directory
staging area
repository
Source Control
12
keywords
pull push clone rebase
staging Remote dirty
Version Control
Subversion
TortoiseSVN (Windows) Cornerstone (MAC)
https://tortoisesvn.net/ http://www.zennaware.com/cornerstone/
Git
Sourcetree (Windows & Mac)
https://www.sourcetreeapp.com/
13
client tools
Versioning APEX Applications
f100.sql
14
one or many?
Shared
components
Navigation
• Breadcrumbs
• Tabs
User Interface
• lov
• templates
• themes
• shortcuts
Security
• authorization
• authentication
Plugins
• dynamic action
• Item
• Process
• region
Pages
Versioning APEX Application
15
single vs multiple
single file multiple files
web based Export & Import Divide into multiple by using APEXExportSplitter
one big file including static files better usable with version control
bring a single change to other instance
all changes encapsulated dependency tracking by developers
changes always replace – no update scripts
Versioning APEX Applications
 export your application as often as you have done changes
 commit the application changes together with database changes
 commit single file AND splitted files (by automation)
 deliver single file for installation
 use splitted file for identifying changes
16
conclusion
Ordered
? 17
Versioning Database Objects
• Reference
Data
• Metadata
• Data Migration
• Grants &
Synonyms
• Installation
Scripts
• Package
• View
• Trigger
• Type
• Table
• Sequence
• Alter Objects
DDL PLSQL
DMLother
18
Versioning != Versioning
19
Frontend Backend
Versioning Database Objects
 divide files by Schema
 don‘t use schemanames in script
 don‘t mix up DML, DDL and PLSQL
 single script for every object
 use force in types and views
20
preconditions
Versioning Database Object
 create a file for every schema combination for grants
 one file for synonyms
 Include a check in every DDL and DML
21
optional
folder structure
trunk/
objects in development
tags/
Every release gets a subfolder in tags
branches/
objects in parallel development
objects for hotfixes in old releases
22
level 1
/trunk/
/tags/
/branches/
folder structure
one folder per
release as subfolder
every release
has the same structure
as the trunk
23
level 2 – tags & branches
/tags
/1_40_1
/1_40
/…
/1_1
/branches/
/1_40
/1_30
folder structure
Windows -> batch
Linux -> shell
Scripts with instance parameters
Scripts usable with CI/CD or
standalone
No SQL or PL/SQL
24
level 2 – trunk/batch or trunk/shell
/trunk
/batch
/shell
/config
/doc
/logs
/app
/schema_main
/schema_export
/schema_import
/scripts
/static-files
/db-model
folder structure
25
level 2 – trunk/config
config
 one file for every target instance
 Database-IP
 Database-Port
 Database-Servicename
 Schema and Password
 Tablespaces
 Datafiles
 Release
 Additional Parameter
Based on security restrictions parameters
not included
 dba / datapump / sys
/trunk
/batch
/shell
/config
/doc
/logs
/app
/schema_main
/schema_export
/schema_import
/scripts
/static-files
/db-model
folder structure
26
level 2 – trunk/doc
Release Notes
Documentation
Installation Notes
PL/DOC
/trunk
/batch
/shell
/config
/doc
/logs
/app
/schema_main
/schema_export
/schema_import
/scripts
/static-files
/db-model
folder structure
27
level 2 – trunk/logs
One Installations/Patchlogsfolder per
Instance
Foldername based on
 Servicename
 Serveraddress
 Example:
/ORCL.DEV-COSMOS.DE
Every installation creates a new entry in
/tags/version
If not installing by automation
place logs from installation by hand
/trunk
/batch
/shell
/config
/doc
/logs
/app
/schema_main
/schema_export
/schema_import
/scripts
/static-files
/db-model
folder structure
Place your APEX APP here
28
level 2 – trunk/app
/trunk
/batch
/shell
/config
/doc
/logs
/app
/schema_main
/schema_export
/schema_import
/scripts
/static-files
/db-model
folder structure
one subfolder per schema
use schema_<name>
easier with parameter
human readable
Higher security when running
scripts from one schema separated
29
level 2 – trunk/schema_xxx
/trunk
/batch
/shell
/config
/doc
/logs
/app
/schema_main
/schema_export
/schema_import
/scripts
/static-files
/db-model
folder structure
30
level 2 – trunk/scripts
Scripts for the installation process
Generated installationscripts
Recompile
Checking for invalide objects
Pre-Patchchecks
Updating to the new version
Every Script is called by
shell or batch script
/trunk
/batch
/shell
/config
/doc
/logs
/app
/schema_main
/schema_export
/schema_import
/scripts
/static-files
/db-model
folder structure
Subfolders
/img
Grafiken der Webanwendung png / jpg / gif …
/js
JavaScript Dateien/libraries *.js
/css
Stylesheet Datei einer Webanwendung *.css
31
level 2 – trunk/static-files
/trunk
/batch
/shell
/config
/doc
/logs
/app
/schema_main
/schema_export
/schema_import
/scripts
/static-files
/db-model
folder structure
save your SQL DataModeler
optional additional
subfolder per schema
divide schema-SQL files
32
level 2 – trunk/db-model
/trunk
/batch
/shell
/config
/doc
/logs
/app
/schema_main
/schema_export
/schema_import
/scripts
/static-files
/db-model
folder structure
33
level 2 – trunk/schema_main/apex
View/Package layer for every APEX
Page
One subfolder per Page
or Page group
easier to handle
page layer gets invalide
when related objects change
/trunk/schema_main
/apex
/p0100
/p0200
/p0300
…
/ddl
/dml
/plsql
folder structure
34
level 2 – trunk/schema_main/ddl
 Only scripts which are ddl.
 No „create or replace“
 additional subfolders
 /tbl - tables
 /seq - sequences
 „alter“ Scripts saved in ddl
/trunk/schema_main
/apex
/ddl
/tbl
/seq
/dml
/plsql
folder structure
35
level 2 – trunk/schema_main/dml
Only DML
no subfolders
/trunk/schema_main
/apex
/ddl
/dml
/plsql
folder structure
36
level 2 – trunk/schema_main/plsql
/plsql/
Only scripts with „create or replace“
additional subfolders
/pkg - Packages
/trg - Trigger
/typ - Types
/vw - Views
/trunk/schema_main
/apex
/ddl
/dml
/plsql
/pkg
/trg
/typ
/vw
Bild mit Durchblick,
Erkenntnis, Freude
37
38
Presentations by MT AG
Dienstag, 26. April Mittwoch, 17. April Donnerstag, 28. April
14.00 Uhr | Music Hall 1
Echtzeitvisualisierung von Twitter und Co.
| Kai Donato & Oliver Lemm
16.15 Uhr | Music Hall 2
12.00 Uhr | Soul
14.00 Uhr | Music Hall 3
14.00 Uhr | Jazz 1
16.15 Uhr | Music Hall 1
11.00 Uhr | Music Hall 1
11.00 Uhr | Music Hall 3
14.00 Uhr | Music Hall 2
Universal Theme vs. APEX mobile vs.
MAF
| Davide Groppuso & Steven Grzbielok
WebSocket my APEX!
| Kai Donato
Single Sign-On für alle!
| Niels de Bruijn
Workshop: Einstieg in die aktuelle Version
von Oracle Application Express
| Oliver Lemm
Wie versioniere ich in APEX?
| Oliver Lemm
Interactive Reports Downloads Reloaded
| Moritz Klein
Zeitreisen mit PL/SQL
| Daniel Dyla
APEX for mobile only. Gewusst wie!
| Alexej Schneider
@OliverLemm
http://oliverlemm.blogspot.de/
http://de.linkedin.com/in/OliverLemm
https://www.xing.com/profile/Oliver_Lemm
Thanks!

Weitere ähnliche Inhalte

Was ist angesagt?

Making Sense of APEX Security by Christoph Ruepprich
Making Sense of APEX Security by Christoph RuepprichMaking Sense of APEX Security by Christoph Ruepprich
Making Sense of APEX Security by Christoph Ruepprich
Enkitec
 
Oracle application express ppt
Oracle application express pptOracle application express ppt
Oracle application express ppt
Abhinaw Kumar
 
HTL(Sightly) - All you need to know
HTL(Sightly) - All you need to knowHTL(Sightly) - All you need to know
HTL(Sightly) - All you need to know
Prabhdeep Singh
 

Was ist angesagt? (20)

Making Sense of APEX Security by Christoph Ruepprich
Making Sense of APEX Security by Christoph RuepprichMaking Sense of APEX Security by Christoph Ruepprich
Making Sense of APEX Security by Christoph Ruepprich
 
Oracle Application Express 20.2 New Features
Oracle Application Express 20.2 New FeaturesOracle Application Express 20.2 New Features
Oracle Application Express 20.2 New Features
 
CSS Paged Media - A review of tools and techniques
CSS Paged Media - A review of tools and techniquesCSS Paged Media - A review of tools and techniques
CSS Paged Media - A review of tools and techniques
 
OOW16 - Oracle Enterprise Manager 13c Cloud Control for Managing Oracle E-Bus...
OOW16 - Oracle Enterprise Manager 13c Cloud Control for Managing Oracle E-Bus...OOW16 - Oracle Enterprise Manager 13c Cloud Control for Managing Oracle E-Bus...
OOW16 - Oracle Enterprise Manager 13c Cloud Control for Managing Oracle E-Bus...
 
OOW15 - managing oracle e-business suite auditing and security
OOW15 - managing oracle e-business suite auditing and securityOOW15 - managing oracle e-business suite auditing and security
OOW15 - managing oracle e-business suite auditing and security
 
Understanding Sling Models in AEM
Understanding Sling Models in AEMUnderstanding Sling Models in AEM
Understanding Sling Models in AEM
 
Telosys project booster Paris Open Source Summit 2019
Telosys project booster Paris Open Source Summit 2019Telosys project booster Paris Open Source Summit 2019
Telosys project booster Paris Open Source Summit 2019
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
 
Exploring the details of APEX sessions
Exploring the details of APEX sessionsExploring the details of APEX sessions
Exploring the details of APEX sessions
 
Enable oracle database vault
Enable oracle database vaultEnable oracle database vault
Enable oracle database vault
 
Oracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ OverviewOracle REST Data Services Best Practices/ Overview
Oracle REST Data Services Best Practices/ Overview
 
Oracle Management Cloud
Oracle Management CloudOracle Management Cloud
Oracle Management Cloud
 
Oracle APEX Performance
Oracle APEX PerformanceOracle APEX Performance
Oracle APEX Performance
 
Integration Patterns With Spring integration
Integration Patterns With Spring integrationIntegration Patterns With Spring integration
Integration Patterns With Spring integration
 
WebSockets with Spring 4
WebSockets with Spring 4WebSockets with Spring 4
WebSockets with Spring 4
 
confirm & alert
confirm & alertconfirm & alert
confirm & alert
 
Oracle REST Data Services
Oracle REST Data ServicesOracle REST Data Services
Oracle REST Data Services
 
Oracle application express ppt
Oracle application express pptOracle application express ppt
Oracle application express ppt
 
HTL(Sightly) - All you need to know
HTL(Sightly) - All you need to knowHTL(Sightly) - All you need to know
HTL(Sightly) - All you need to know
 
APEX Themes and Templates
APEX Themes and TemplatesAPEX Themes and Templates
APEX Themes and Templates
 

Ähnlich wie How to use source control with apex?

Oracle Apex Technical Introduction
Oracle Apex   Technical IntroductionOracle Apex   Technical Introduction
Oracle Apex Technical Introduction
crokitta
 

Ähnlich wie How to use source control with apex? (20)

Readme
ReadmeReadme
Readme
 
Terraform modules restructured
Terraform modules restructuredTerraform modules restructured
Terraform modules restructured
 
Terraform Modules Restructured
Terraform Modules RestructuredTerraform Modules Restructured
Terraform Modules Restructured
 
Euclid Data Model 101 - Episode 01: Overview
Euclid Data Model 101 - Episode 01: OverviewEuclid Data Model 101 - Episode 01: Overview
Euclid Data Model 101 - Episode 01: Overview
 
OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015
 
Digital Fabrication Studio.02 _Information @ Aalto Media Factory
Digital Fabrication Studio.02 _Information @ Aalto Media FactoryDigital Fabrication Studio.02 _Information @ Aalto Media Factory
Digital Fabrication Studio.02 _Information @ Aalto Media Factory
 
Extend Eclipse p2 framework capabilities: Add your custom installation steps
Extend Eclipse p2 framework capabilities: Add your custom installation stepsExtend Eclipse p2 framework capabilities: Add your custom installation steps
Extend Eclipse p2 framework capabilities: Add your custom installation steps
 
Is 12 Factor App Right About Logging
Is 12 Factor App Right About LoggingIs 12 Factor App Right About Logging
Is 12 Factor App Right About Logging
 
Digital Fabrication Studio v.0.2: Information
Digital Fabrication Studio v.0.2: InformationDigital Fabrication Studio v.0.2: Information
Digital Fabrication Studio v.0.2: Information
 
Anatomy of Autoconfig in Oracle E-Business Suite
Anatomy of Autoconfig in Oracle E-Business SuiteAnatomy of Autoconfig in Oracle E-Business Suite
Anatomy of Autoconfig in Oracle E-Business Suite
 
AEM Meetup Sydney - Content Migration with CRX2Oak
AEM Meetup Sydney - Content Migration with CRX2OakAEM Meetup Sydney - Content Migration with CRX2Oak
AEM Meetup Sydney - Content Migration with CRX2Oak
 
Ibm
IbmIbm
Ibm
 
Silverlight Development & The Model-View-ViewModel Pattern
Silverlight Development & The Model-View-ViewModel PatternSilverlight Development & The Model-View-ViewModel Pattern
Silverlight Development & The Model-View-ViewModel Pattern
 
Von A bis Z-itrix: Installieren Sie den stabilsten und schnellsten HCL Notes-...
Von A bis Z-itrix: Installieren Sie den stabilsten und schnellsten HCL Notes-...Von A bis Z-itrix: Installieren Sie den stabilsten und schnellsten HCL Notes-...
Von A bis Z-itrix: Installieren Sie den stabilsten und schnellsten HCL Notes-...
 
Oracle RI ETL process overview.
Oracle RI ETL process overview.Oracle RI ETL process overview.
Oracle RI ETL process overview.
 
[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics
 
Oracle Apex Technical Introduction
Oracle Apex   Technical IntroductionOracle Apex   Technical Introduction
Oracle Apex Technical Introduction
 
R12 d49656 gc10-apps dba 04
R12 d49656 gc10-apps dba 04R12 d49656 gc10-apps dba 04
R12 d49656 gc10-apps dba 04
 
XPages -Beyond the Basics
XPages -Beyond the BasicsXPages -Beyond the Basics
XPages -Beyond the Basics
 
R12 d49656 gc10-apps dba 26
R12 d49656 gc10-apps dba 26R12 d49656 gc10-apps dba 26
R12 d49656 gc10-apps dba 26
 

Mehr von Oliver Lemm

Mehr von Oliver Lemm (20)

Qualitätssicherung für APEX Anwendungen.pdf
Qualitätssicherung für APEX Anwendungen.pdfQualitätssicherung für APEX Anwendungen.pdf
Qualitätssicherung für APEX Anwendungen.pdf
 
Qualitätsstandards in der Datenbankentwicklung.pdf
Qualitätsstandards in der Datenbankentwicklung.pdfQualitätsstandards in der Datenbankentwicklung.pdf
Qualitätsstandards in der Datenbankentwicklung.pdf
 
APEX Page Items in detail
APEX Page Items in detailAPEX Page Items in detail
APEX Page Items in detail
 
APEX richtig installieren und konfigurieren
APEX richtig installieren und konfigurierenAPEX richtig installieren und konfigurieren
APEX richtig installieren und konfigurieren
 
APEX Migration
APEX MigrationAPEX Migration
APEX Migration
 
Jenkins Pipelines Advanced
Jenkins Pipelines AdvancedJenkins Pipelines Advanced
Jenkins Pipelines Advanced
 
From Dev to Ops
From Dev to OpsFrom Dev to Ops
From Dev to Ops
 
Das Universal Theme in APEX 19
Das Universal Theme in APEX 19Das Universal Theme in APEX 19
Das Universal Theme in APEX 19
 
Jenkins Pipeline meets Oracle
Jenkins Pipeline meets OracleJenkins Pipeline meets Oracle
Jenkins Pipeline meets Oracle
 
REST mit APEX 18.1
REST mit APEX 18.1REST mit APEX 18.1
REST mit APEX 18.1
 
Schritt für Schritt ins Grid
Schritt für Schritt ins GridSchritt für Schritt ins Grid
Schritt für Schritt ins Grid
 
Migration ins Universal Theme 1.1
Migration ins Universal Theme 1.1Migration ins Universal Theme 1.1
Migration ins Universal Theme 1.1
 
Mastering Universal Theme with corporate design from Union Investment
Mastering Universal Theme with corporate design from Union InvestmentMastering Universal Theme with corporate design from Union Investment
Mastering Universal Theme with corporate design from Union Investment
 
Mastering Universal Theme with corporate design from union investment
Mastering Universal Theme with corporate design from union investmentMastering Universal Theme with corporate design from union investment
Mastering Universal Theme with corporate design from union investment
 
Jetlag - Oracle Jet und APEX
Jetlag - Oracle Jet und APEXJetlag - Oracle Jet und APEX
Jetlag - Oracle Jet und APEX
 
Wieder verschätzt?
Wieder verschätzt?Wieder verschätzt?
Wieder verschätzt?
 
Komplexe Daten mit Oracle Jet einfach aufbereitet
Komplexe Daten mit Oracle Jet einfach aufbereitetKomplexe Daten mit Oracle Jet einfach aufbereitet
Komplexe Daten mit Oracle Jet einfach aufbereitet
 
Mastering Universal Theme with corporate design from Union Investment
Mastering Universal Theme with corporate design from Union InvestmentMastering Universal Theme with corporate design from Union Investment
Mastering Universal Theme with corporate design from Union Investment
 
Echtzeitvisualisierung von Twitter & Co
Echtzeitvisualisierung von Twitter & CoEchtzeitvisualisierung von Twitter & Co
Echtzeitvisualisierung von Twitter & Co
 
Enterprise APEX
Enterprise APEXEnterprise APEX
Enterprise APEX
 

Kürzlich hochgeladen

Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
amitlee9823
 
👉 Amritsar Call Girl 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Phone No Amri...
👉 Amritsar Call Girl 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Phone No Amri...👉 Amritsar Call Girl 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Phone No Amri...
👉 Amritsar Call Girl 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Phone No Amri...
karishmasinghjnh
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
amitlee9823
 
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
amitlee9823
 
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men 🔝Thrissur🔝 Escor...
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men  🔝Thrissur🔝   Escor...➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men  🔝Thrissur🔝   Escor...
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men 🔝Thrissur🔝 Escor...
amitlee9823
 
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
amitlee9823
 
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
amitlee9823
 
Probability Grade 10 Third Quarter Lessons
Probability Grade 10 Third Quarter LessonsProbability Grade 10 Third Quarter Lessons
Probability Grade 10 Third Quarter Lessons
JoseMangaJr1
 
Call Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night StandCall Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night Stand
amitlee9823
 
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get CytotecAbortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Riyadh +966572737505 get cytotec
 
Call Girls Indiranagar Just Call 👗 9155563397 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 9155563397 👗 Top Class Call Girl Service B...Call Girls Indiranagar Just Call 👗 9155563397 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 9155563397 👗 Top Class Call Girl Service B...
only4webmaster01
 
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
amitlee9823
 
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night StandCall Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
amitlee9823
 

Kürzlich hochgeladen (20)

Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
 
👉 Amritsar Call Girl 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Phone No Amri...
👉 Amritsar Call Girl 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Phone No Amri...👉 Amritsar Call Girl 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Phone No Amri...
👉 Amritsar Call Girl 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Phone No Amri...
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
 
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
 
Midocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxMidocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFx
 
Thane Call Girls 7091864438 Call Girls in Thane Escort service book now -
Thane Call Girls 7091864438 Call Girls in Thane Escort service book now -Thane Call Girls 7091864438 Call Girls in Thane Escort service book now -
Thane Call Girls 7091864438 Call Girls in Thane Escort service book now -
 
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNK
DATA SUMMIT 24  Building Real-Time Pipelines With FLaNKDATA SUMMIT 24  Building Real-Time Pipelines With FLaNK
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNK
 
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men 🔝Thrissur🔝 Escor...
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men  🔝Thrissur🔝   Escor...➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men  🔝Thrissur🔝   Escor...
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men 🔝Thrissur🔝 Escor...
 
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
 
Detecting Credit Card Fraud: A Machine Learning Approach
Detecting Credit Card Fraud: A Machine Learning ApproachDetecting Credit Card Fraud: A Machine Learning Approach
Detecting Credit Card Fraud: A Machine Learning Approach
 
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% SecureCall me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
 
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
 
Probability Grade 10 Third Quarter Lessons
Probability Grade 10 Third Quarter LessonsProbability Grade 10 Third Quarter Lessons
Probability Grade 10 Third Quarter Lessons
 
Anomaly detection and data imputation within time series
Anomaly detection and data imputation within time seriesAnomaly detection and data imputation within time series
Anomaly detection and data imputation within time series
 
Call Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night StandCall Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night Stand
 
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get CytotecAbortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get Cytotec
 
Call Girls Indiranagar Just Call 👗 9155563397 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 9155563397 👗 Top Class Call Girl Service B...Call Girls Indiranagar Just Call 👗 9155563397 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 9155563397 👗 Top Class Call Girl Service B...
 
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
 
Predicting Loan Approval: A Data Science Project
Predicting Loan Approval: A Data Science ProjectPredicting Loan Approval: A Data Science Project
Predicting Loan Approval: A Data Science Project
 
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night StandCall Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
 

How to use source control with apex?

  • 1. How to use Version Control in APEX projects? Oliver Lemm APEX Connect 26.04.2016
  • 2. Facts & Figures Independent Technology House with Cross-Industry Expertise Headquarter Ratingen (North Rhine – Westphalia) 240 Employees Founded 1994 Branches Dortmund, Cologne, Frankfurt Top Company for Trainees & Students Privately- Owned Corporation Oracle Platinum Partner 24 Mio. Euro Revenue 2
  • 3. about me  Oliver Lemm  since february 2007 working for MT AG in Ratingen  Competence Center Leader APEX & Service Center Leader APEX  Diploma applied computer science at the university of Duisburg-Essen  Projectleader, IT-Architect and Developer  working with Oracle Databases and Oracle Application Express since 2007  Blog http://oliverlemm.blogspot.de  Twitter https://twitter.com/OliverLemm 3
  • 4. Agenda 1. Motivation 2. Version Control 3. Versioning APEX Application 4. Versioning Database Objects 5. Versioning external Files 4
  • 6. Motivation „make it visible what has changed, who changed it and when was the change“ „create a snapshot of the whole scripts of a delivered software“ „define a central repository for the code“ „make it possible to automate testing and deployment“ 6
  • 7. Version Control Version Control Revision Control Numbers Source Control Files Source Code Management „SCM“ Software Configuration Management 7
  • 8. Version Control  proprietary and local  PVCS since 1985  Open Source & Client Server  CVS since 1986  Subversion / SVN since 2000  Distributed  Git since 2005  GitHub – web-based Git repository 8 software history
  • 9. Version Control  you need a repository server  direct commit into repository  revision and version central  version history only on server  Central approach supports security and rights management 9 Subversion working directory repository
  • 10. Source Control 10 keywords commit merge diff update trunk tag branch
  • 11. Version Control  there is no repository server  all operations are locally  sync mechanism for distributed systems 11 Git working directory staging area repository
  • 12. Source Control 12 keywords pull push clone rebase staging Remote dirty
  • 13. Version Control Subversion TortoiseSVN (Windows) Cornerstone (MAC) https://tortoisesvn.net/ http://www.zennaware.com/cornerstone/ Git Sourcetree (Windows & Mac) https://www.sourcetreeapp.com/ 13 client tools
  • 14. Versioning APEX Applications f100.sql 14 one or many? Shared components Navigation • Breadcrumbs • Tabs User Interface • lov • templates • themes • shortcuts Security • authorization • authentication Plugins • dynamic action • Item • Process • region Pages
  • 15. Versioning APEX Application 15 single vs multiple single file multiple files web based Export & Import Divide into multiple by using APEXExportSplitter one big file including static files better usable with version control bring a single change to other instance all changes encapsulated dependency tracking by developers changes always replace – no update scripts
  • 16. Versioning APEX Applications  export your application as often as you have done changes  commit the application changes together with database changes  commit single file AND splitted files (by automation)  deliver single file for installation  use splitted file for identifying changes 16 conclusion
  • 18. Versioning Database Objects • Reference Data • Metadata • Data Migration • Grants & Synonyms • Installation Scripts • Package • View • Trigger • Type • Table • Sequence • Alter Objects DDL PLSQL DMLother 18
  • 20. Versioning Database Objects  divide files by Schema  don‘t use schemanames in script  don‘t mix up DML, DDL and PLSQL  single script for every object  use force in types and views 20 preconditions
  • 21. Versioning Database Object  create a file for every schema combination for grants  one file for synonyms  Include a check in every DDL and DML 21 optional
  • 22. folder structure trunk/ objects in development tags/ Every release gets a subfolder in tags branches/ objects in parallel development objects for hotfixes in old releases 22 level 1 /trunk/ /tags/ /branches/
  • 23. folder structure one folder per release as subfolder every release has the same structure as the trunk 23 level 2 – tags & branches /tags /1_40_1 /1_40 /… /1_1 /branches/ /1_40 /1_30
  • 24. folder structure Windows -> batch Linux -> shell Scripts with instance parameters Scripts usable with CI/CD or standalone No SQL or PL/SQL 24 level 2 – trunk/batch or trunk/shell /trunk /batch /shell /config /doc /logs /app /schema_main /schema_export /schema_import /scripts /static-files /db-model
  • 25. folder structure 25 level 2 – trunk/config config  one file for every target instance  Database-IP  Database-Port  Database-Servicename  Schema and Password  Tablespaces  Datafiles  Release  Additional Parameter Based on security restrictions parameters not included  dba / datapump / sys /trunk /batch /shell /config /doc /logs /app /schema_main /schema_export /schema_import /scripts /static-files /db-model
  • 26. folder structure 26 level 2 – trunk/doc Release Notes Documentation Installation Notes PL/DOC /trunk /batch /shell /config /doc /logs /app /schema_main /schema_export /schema_import /scripts /static-files /db-model
  • 27. folder structure 27 level 2 – trunk/logs One Installations/Patchlogsfolder per Instance Foldername based on  Servicename  Serveraddress  Example: /ORCL.DEV-COSMOS.DE Every installation creates a new entry in /tags/version If not installing by automation place logs from installation by hand /trunk /batch /shell /config /doc /logs /app /schema_main /schema_export /schema_import /scripts /static-files /db-model
  • 28. folder structure Place your APEX APP here 28 level 2 – trunk/app /trunk /batch /shell /config /doc /logs /app /schema_main /schema_export /schema_import /scripts /static-files /db-model
  • 29. folder structure one subfolder per schema use schema_<name> easier with parameter human readable Higher security when running scripts from one schema separated 29 level 2 – trunk/schema_xxx /trunk /batch /shell /config /doc /logs /app /schema_main /schema_export /schema_import /scripts /static-files /db-model
  • 30. folder structure 30 level 2 – trunk/scripts Scripts for the installation process Generated installationscripts Recompile Checking for invalide objects Pre-Patchchecks Updating to the new version Every Script is called by shell or batch script /trunk /batch /shell /config /doc /logs /app /schema_main /schema_export /schema_import /scripts /static-files /db-model
  • 31. folder structure Subfolders /img Grafiken der Webanwendung png / jpg / gif … /js JavaScript Dateien/libraries *.js /css Stylesheet Datei einer Webanwendung *.css 31 level 2 – trunk/static-files /trunk /batch /shell /config /doc /logs /app /schema_main /schema_export /schema_import /scripts /static-files /db-model
  • 32. folder structure save your SQL DataModeler optional additional subfolder per schema divide schema-SQL files 32 level 2 – trunk/db-model /trunk /batch /shell /config /doc /logs /app /schema_main /schema_export /schema_import /scripts /static-files /db-model
  • 33. folder structure 33 level 2 – trunk/schema_main/apex View/Package layer for every APEX Page One subfolder per Page or Page group easier to handle page layer gets invalide when related objects change /trunk/schema_main /apex /p0100 /p0200 /p0300 … /ddl /dml /plsql
  • 34. folder structure 34 level 2 – trunk/schema_main/ddl  Only scripts which are ddl.  No „create or replace“  additional subfolders  /tbl - tables  /seq - sequences  „alter“ Scripts saved in ddl /trunk/schema_main /apex /ddl /tbl /seq /dml /plsql
  • 35. folder structure 35 level 2 – trunk/schema_main/dml Only DML no subfolders /trunk/schema_main /apex /ddl /dml /plsql
  • 36. folder structure 36 level 2 – trunk/schema_main/plsql /plsql/ Only scripts with „create or replace“ additional subfolders /pkg - Packages /trg - Trigger /typ - Types /vw - Views /trunk/schema_main /apex /ddl /dml /plsql /pkg /trg /typ /vw
  • 38. 38 Presentations by MT AG Dienstag, 26. April Mittwoch, 17. April Donnerstag, 28. April 14.00 Uhr | Music Hall 1 Echtzeitvisualisierung von Twitter und Co. | Kai Donato & Oliver Lemm 16.15 Uhr | Music Hall 2 12.00 Uhr | Soul 14.00 Uhr | Music Hall 3 14.00 Uhr | Jazz 1 16.15 Uhr | Music Hall 1 11.00 Uhr | Music Hall 1 11.00 Uhr | Music Hall 3 14.00 Uhr | Music Hall 2 Universal Theme vs. APEX mobile vs. MAF | Davide Groppuso & Steven Grzbielok WebSocket my APEX! | Kai Donato Single Sign-On für alle! | Niels de Bruijn Workshop: Einstieg in die aktuelle Version von Oracle Application Express | Oliver Lemm Wie versioniere ich in APEX? | Oliver Lemm Interactive Reports Downloads Reloaded | Moritz Klein Zeitreisen mit PL/SQL | Daniel Dyla APEX for mobile only. Gewusst wie! | Alexej Schneider