Table of Contents |
---|
...
What are multiple Datical Pipelines in a project?
- Multiple pipelines allow you to deploy changes to different database environments
- You will need a REF database for each pipeline
...
It is important to note that you will need a REF database for each pipeline. Click here to read more about REF databases.
...
What are common use cases for using multiple Datical pipelines?
- Developers working on concurrent releases
- Development process requires changes to be merged from one pipeline to another in order for changes to be deployed to production
- Hotfix pipeline
There are several reasons for using multiple Datical pipelines. Let's visit a few common use cases:
1. Developers working on concurrent releases
Your team could be developing code for multiple releases.
...
Pipeline Name | Branch Name | |||||
---|---|---|---|---|---|---|
Pipeline1 | June2018 | REF1 | DEV1 | QA1 | UAT | PROD |
Pipeline2 | July2018 | REF2 | DEV2 | QA2 | UAT | PROD |
2. Development process requires changes to be merged from one branch to another in order for changes to be deployed to production
Your development team has adopted a process for working on dedicated branches. This allows you to develop features independently.
...
As a result of this approach, Datical is automatically able to detect changes packaged in "line1" branch that merged with "release" branch.
3. Hotfix
Often, there is a need to patch changes made to production. In addition to requiring a shorter pipeline to PROD, you also need a separate SCM branch to maintain all hotfix changes.
...
Pipeline Name | Branch Name | |||||
---|---|---|---|---|---|---|
Pipeline1 | release | REF1 | DEV1 | QA1 | UAT | PROD |
Hotfix | hotfix | REF2 | UAT | PROD |
...
How to setup multiple pipelines?
In order to setup multiple pipelines in Datical you would follow these steps:
- Create a new pipeline in Datical project
- Populate DB steps in the pipeline
- Configure "deployPackager.properties" file to map pipelines to SCM branches
Let's take a look at each step in details:
1. Create a new pipeline in Datical project
In Datical DB GUI, click on the "Manage" button
...
Click OK. Now switch to the newly created pipeline in Datical GUI:
2. Populate DB steps in the pipeline
Click "Add Steps" to setup connection to a new database, e.g., REF2 database.
...
For connecting to an existing database step that is already used in another pipeline, e.g., UAT or PROD, use the "Select an existing deployment step" option at the top:
3. Configure "deployPackager.properties" file to map pipelines to SCM branches
Configure your "deployPacakager.properties" file to map your pipeline to branches. See the sample file below:
...
Code Block | ||
---|---|---|
| ||
databaseBackupRestoreLocation=DATICAL_DATA_PUMP_DIR databaseBackupMode=on_demand ddbScmSystem=git ddbScmBranch=master ddbScmPath=. sqlScmSystem=git sqlScmPath=../EFS_SQL sqlScmSQLBaseDir=sql_code release1.sqlScmBranch=June2018 release1.sqlScmLastImportID=d7e7bac release2.sqlScmBranch=July2018 release2.sqlScmLastImportID=f3896e0 validateRollback = none disableTraceFile = false |
...
How does Datical handle branch merges when changes are already packaged in the source branch?
See link in Datical Documentation space → /wiki/spaces/DDD/pages/22511822SQL Code Branching & Merging (Advanced)