Doccumentation added
This commit is contained in:
parent
1b8da1f48f
commit
cc645c3991
40
README.md
40
README.md
|
@ -19,12 +19,14 @@ Required applications.
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
It's recommended to install the package globally.
|
It's recommended to install the package globally.
|
||||||
|
|
||||||
```text
|
```text
|
||||||
# npm install -g myvc
|
# npm install -g myvc
|
||||||
$ myvc [command]
|
$ myvc [command]
|
||||||
```
|
```
|
||||||
|
|
||||||
You can also install locally and use the *npx* command to execute it.
|
You can also install locally and use the *npx* command to execute it.
|
||||||
|
|
||||||
```text
|
```text
|
||||||
$ npm install myvc
|
$ npm install myvc
|
||||||
$ npx myvc [command]
|
$ npx myvc [command]
|
||||||
|
@ -33,9 +35,11 @@ $ npx myvc [command]
|
||||||
## How to use
|
## How to use
|
||||||
|
|
||||||
Execute *myvc* with the desired command.
|
Execute *myvc* with the desired command.
|
||||||
|
|
||||||
```text
|
```text
|
||||||
$ myvc [-w|--workspace] [-e|--env] [-h|--help] command
|
$ myvc [-w|--workspace] [-e|--env] [-h|--help] command
|
||||||
```
|
```
|
||||||
|
|
||||||
The default working directory is the current one and unless otherwise indicated,
|
The default working directory is the current one and unless otherwise indicated,
|
||||||
the default environment is *production*.
|
the default environment is *production*.
|
||||||
|
|
||||||
|
@ -56,7 +60,7 @@ includes the tables where MyVC stores information about applied versions.
|
||||||
|
|
||||||
Create *myvc.config.json* main configuration file at the root of your project
|
Create *myvc.config.json* main configuration file at the root of your project
|
||||||
folder, this file should include the project codename and schemas/tables wich
|
folder, this file should include the project codename and schemas/tables wich
|
||||||
are exported when you use *pull*or *dump* commands. You have an example of a
|
are exported when you use *pull* or *dump* commands. You have an example of a
|
||||||
configuration file in the root folder of this project.
|
configuration file in the root folder of this project.
|
||||||
|
|
||||||
### Environments
|
### Environments
|
||||||
|
@ -64,6 +68,7 @@ configuration file in the root folder of this project.
|
||||||
Create database connection configuration files for each environment at main
|
Create database connection configuration files for each environment at main
|
||||||
project folder using standard MySQL *.ini*. The predefined environment names
|
project folder using standard MySQL *.ini*. The predefined environment names
|
||||||
are *production* and *testing*.
|
are *production* and *testing*.
|
||||||
|
|
||||||
```text
|
```text
|
||||||
db.[environment].ini
|
db.[environment].ini
|
||||||
```
|
```
|
||||||
|
@ -81,6 +86,7 @@ can also create your local fixture and structure files.
|
||||||
Routines should be placed inside *routines* folder. All objects that have
|
Routines should be placed inside *routines* folder. All objects that have
|
||||||
PL/SQL code are considered routines. It includes events, functions, procedures,
|
PL/SQL code are considered routines. It includes events, functions, procedures,
|
||||||
triggers and views with the following structure.
|
triggers and views with the following structure.
|
||||||
|
|
||||||
```text
|
```text
|
||||||
routines
|
routines
|
||||||
`- schema
|
`- schema
|
||||||
|
@ -99,6 +105,8 @@ triggers and views with the following structure.
|
||||||
### Versions
|
### Versions
|
||||||
|
|
||||||
Versions should be placed inside *changes* folder with the following structure.
|
Versions should be placed inside *changes* folder with the following structure.
|
||||||
|
!Don't place your PL/SQL objects here, use the routines folder!
|
||||||
|
|
||||||
```text
|
```text
|
||||||
changes
|
changes
|
||||||
|- 00001-firstVersionCodeName
|
|- 00001-firstVersionCodeName
|
||||||
|
@ -109,6 +117,36 @@ Versions should be placed inside *changes* folder with the following structure.
|
||||||
|- 00-firstExecutedScript.sql
|
|- 00-firstExecutedScript.sql
|
||||||
`- 00-sameNumbers.sql
|
`- 00-sameNumbers.sql
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Why
|
||||||
|
|
||||||
|
The main reason for starting this project it's because there are no fully free
|
||||||
|
and opensource migration tools available that allow versioning database routines
|
||||||
|
with an standard CVS system as if they were normal application code.
|
||||||
|
|
||||||
|
Also, the existing tools are too complex and require too much knowledge to start
|
||||||
|
a small project.
|
||||||
|
|
||||||
|
## Todo
|
||||||
|
|
||||||
|
Pending improvements.
|
||||||
|
|
||||||
|
* Improve the pull command to, instead of completely overwriting the routines
|
||||||
|
directory, merge the database changes with the local SQL files. It is possible
|
||||||
|
using a library that allows to manipulate git repositories (nodegit) and running
|
||||||
|
thefollowing steps:
|
||||||
|
|
||||||
|
1. Save the current git HEAD
|
||||||
|
2. Check out to the last database push commit (saved versioning datatables)
|
||||||
|
3. Create a new branch
|
||||||
|
4. Export routines
|
||||||
|
5. Commit the new changes
|
||||||
|
6. Merge the new branch with the initial HEAD branch.
|
||||||
|
|
||||||
|
* Migrate all possible tools and code from shell scripts to native Javascript,
|
||||||
|
dealing with dependencies and compatibility issues between various OS that this
|
||||||
|
may cause.
|
||||||
|
|
||||||
## Built With
|
## Built With
|
||||||
|
|
||||||
* [Git](https://git-scm.com/)
|
* [Git](https://git-scm.com/)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "myvc",
|
"name": "myvc",
|
||||||
"version": "1.0.9",
|
"version": "1.0.10",
|
||||||
"author": "Verdnatura Levante SL",
|
"author": "Verdnatura Levante SL",
|
||||||
"description": "MySQL Version Control",
|
"description": "MySQL Version Control",
|
||||||
"license": "GPL-3.0",
|
"license": "GPL-3.0",
|
||||||
|
|
Loading…
Reference in New Issue