86 lines
1.6 KiB
Markdown
86 lines
1.6 KiB
Markdown
# MyVC (MySQL Version Control)
|
|
|
|
Utilities to ease the maintenance of MySQL database versioning using a Git
|
|
repository.
|
|
|
|
## Prerequisites
|
|
|
|
Required applications.
|
|
|
|
* Git
|
|
* Node.js = 12.17.0 LTS
|
|
* Docker
|
|
|
|
## How to use
|
|
|
|
Export structure (uses production configuration).
|
|
```
|
|
$ myvc structure
|
|
```
|
|
|
|
Export fixtures (uses production configuration).
|
|
```
|
|
$ myvc fixtures
|
|
```
|
|
|
|
Export routines.
|
|
```
|
|
$ myvc routines [environment]
|
|
```
|
|
|
|
Apply changes into database.
|
|
```
|
|
$ myvc apply [-f] [-u] [environment]
|
|
```
|
|
|
|
## Basic information
|
|
|
|
Create database connection configuration files for each environment at main
|
|
project folder using the standard MySQL parameters. The predefined environment
|
|
names are *production* and *testing*.
|
|
```
|
|
db.[environment].ini
|
|
```
|
|
|
|
Structure and fixture dumps are located inside *dump* folder.
|
|
|
|
* *structure.sql*
|
|
* *fixtures.sql*
|
|
* *fixtures.local.sql*
|
|
|
|
Routines are located inside *routines* folder. It includes procedures,
|
|
functions, triggers, views and events with the following structure.
|
|
```
|
|
routines
|
|
`- schema
|
|
|- events
|
|
| `- eventName.sql
|
|
|- functions
|
|
| `- functionName.sql
|
|
|- procedures
|
|
| `- procedureName.sql
|
|
|- triggers
|
|
| `- triggerName.sql
|
|
`- views
|
|
`- viewName.sql
|
|
```
|
|
|
|
## Versions
|
|
|
|
Place your versions inside *changes* folder with the following structure.
|
|
```
|
|
changes
|
|
|- 00001-firstVersionCodeName
|
|
| |- 00-firstExecutedScript.sql
|
|
| |- 01-secondScript.sql
|
|
| `- 99-lastScript.sql
|
|
`- 00002-secondVersion
|
|
|- 00-firstExecutedScript.sql
|
|
`- 00-sameNumbers.sql
|
|
```
|
|
## Built With
|
|
|
|
* [Git](https://git-scm.com/)
|
|
* [nodejs](https://nodejs.org/)
|
|
* [docker](https://www.docker.com/)
|