Skip to content

MaikMichel/dbFlow

Repository files navigation

Deployment framework for Oracle Database Applications


Quick Links



dbFlow is a deployment tool / framework for database driven applications in the oracle environment, mainly in the area of Oracle APEX. With dbFlow you can create and deploy multi-layered applications. dbFLow is powered by Git and can build a deployment / patch from different commit states, which can then be rolled out to different target instances.

Features

  • Create an Oracle Database / APEX Project per command line
  • Install dependent features like Logger, utPLSQL, teplsql, ...
  • Use a fully customizable deployment flow based on Git Flow
  • Configure your project dependencies
  • Generate and process changelogs
  • Create and test nightlybuilds
  • Build artifacts / patches based on Git diffs
  • Deploy patches to target instances
  • Copy configuration to other instances
  • Generate Test deployments as Insert Scripts

Generate project "demo"

ScreenCast:  Generate demo project

Install project "demo"

ScreenCast:  Install demo project



Works best with dbFLux dbFlux


With that in place you get the ability to

  • compile SQL or PLSQL based on folder structure
  • compile all used schemas
  • execute tests based on folder structure
  • minify and upload JavaScript to your APEX Application
  • minify and upload CSS to your Application
  • Export APEX Applications
  • Export REST Modules
  • Export DB Schema or Objects
  • Export Static Application Files
  • Create and Upload binary files for reporting (AOP)
  • Many small development improvements


Getting Started

With a One-Liner

# Without parameter current directory is used
curl -sS https://raw.githubusercontent.com/MaikMichel/dbFlow/master/install.sh | bash

# Add targetfolder as parameter
curl -sS https://raw.githubusercontent.com/MaikMichel/dbFlow/master/install.sh | bash -s <targetfolder>

Manual

  1. create a git repositoy
  2. add dbFlow as .dbFlow submodule to your project

Generate project and setup install to database

  1. run .dbFlow/setup.sh --generate <project_name>
  2. answer some question based on your requirements
  3. Review files, generated for you and make some adjustments
  4. after that just run .dbFlow/setup.sh --install
# create a folder for your project and change directory into
$ mkdir demo && cd demo

# init your project with git
$ git init

# clone dbFlow as submodule
$ git submodule add https://github.com/MaikMichel/dbFlow.git .dbFlow

# generate and switch to your development branch
$ git checkout -b develop

# generate project structure
$ .dbFlow/setup.sh --generate <project_name>

# after processing the wizard steps, just install
$ .dbFlow/setup.sh --install

Documentation

Just read the docs

Frequently Asked Question

Git creates wrong filenames and dbFlow can't copy / rsync them in a right manner

  • This is a git problem and you can turn it off by using following option:
$ git config --global core.quotepath off