Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mertguvencli/deploydb

A simple python package that performs SQL Server Source Control and Auto Deployment.
https://github.com/mertguvencli/deploydb

database dbops deployment-automation python sql-server version-control

Last synced: about 2 months ago
JSON representation

A simple python package that performs SQL Server Source Control and Auto Deployment.

Awesome Lists containing this project

README

        

# deploydb

Deploy your database objects automatically when the git branch is updated.

* Production-ready! βš™οΈ
* Easy-to-use πŸ”¨
* Customizable πŸ”§

## Installation
Install the latest package. `pip install deploydb`

## Usage
1- Create configuration file ( *json file or `dict`* )

|Property|Description|
|------------|-----------|
|`local_path`|where the local repository will be located|
|`https_url` or `ssh_url`|address to be listen|
|`target_branch`|branch to handle changes|
|`db_creds`|a list of server credentials|

Example: `config.json`
```json
{
"local_path": "",
"https_url": "",
"ssh_url": "",
"target_branch": "main",
"db_creds": {
"driver": "ODBC Driver 17 for SQL Server",
"server": "server-address-or-instance-name",
"user": "your-username",
"passw": "your-password"
}
}
```

2- Listener will listen every changes with `handle_changes` method.

```python
from deploydb import Listener

deploy = Listener('config.json')
deploy.handle_changes()
```

### Repo Generator
If you does not have any existing repository. You can easily export your database objects then create your repository.
```python
from deploydb import RepoGenerator

scripter = RepoGenerator(
config="config.json",
export_path="path-to-export",
includes=[], #Β Default takes all databases from the given credential if not specified.
excludes=[]
)
scripter.run()
```
`RepoGenerator` will extract objects structure as below.

```
.
β”œβ”€β”€ Databases
β”‚Β Β  β”œβ”€β”€ Your-Db-Name
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DDLs
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ DMLs
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Functions
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Stored-Procedures
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Tables
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Triggers
β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Types
β”‚Β Β  β”‚Β Β  └── Views
β”‚Β Β  └── Database-N
└── README.md
```

## TODO

* Creating Services for Continuous Integration
* Windows Service
* Linux Systemd Service

* Getting Notifications
* Microsoft Teams Webhook Integration
* Slack Webhook Integration