Project

General

Profile

DjHDGutilsPatchManager » History » Version 1

Alex V Koval, 08/09/2012 11:53 AM

1 1 Alex V Koval
h1. DjHDGutilsPatchManager
2
3
h2. patch
4
5
h3. Introduction
6
7
PatchManager makes it easy to support large scale project migrations in the well controlled manner.
8
Patches can be different types, namely:
9
10
 * .sql
11
 * .py
12
13
and they are run in sequential manner one after one. The migrations are made that way that several developers
14
in a different branches can run their patches, merge them without conflicts (a random number at the end of the
15
patch name makes it low probability to patch names to interfere) and test well before going to production.
16
17
And so advantages of this system:
18
19
 * predictable & reliable
20
 * allows development in multiple branches in team
21
 * easy to use
22
23
24
h3. Patch names
25
26
Patches can be named automatically that is for *next* command is made:
27
28
<pre>
29
(env)djyp $ ./manage.py patch next
30
File /someproject/migrations/00636-avk-654.sql has been created
31
	size: 0
32
</pre>
33
34
Filename consists from:
35
36
 * 00636 - patch number
37
 * avk - developer name
38
 * 654 - the random part to ensure that patch names do not interfer with same developer different branch
39
40
h3. Commands
41
42
h1. DjHDGutilsPatchManager
43
44
h2. patch
45
46
h3. Introduction
47
48
PatchManager makes it easy to support large scale project migrations in the well controlled manner.
49
Patches can be different types, namely:
50
51
 * .sql
52
 * .py
53
54
and they are run in sequentual manner one after one. The migrations are made that way that several developers
55
in a different branches can run their patches, merge them without conflicts (a random number at the end of the
56
patch name makes it low probability to patch names to interfere) and test well before going to production.
57
58
h3. Patch names
59
60
Patches can be named automatically that is for *next* command is made:
61
62
<pre>
63
(env)djyp $ ./manage.py patch next
64
File /someproject/migrations/00636-avk-654.sql has been created
65
	size: 0
66
</pre>
67
68
Filename consists from:
69
70
 * 00636 - patch number
71
 * avk - developer name
72
 * 654 - the random part to ensure that patch names do not interfer with same developer different branch
73
74
h3. Commands
75
76
* list - list pending patches
77
* install - install PatchManager track model table
78
* up - update project to latest migration
79
* skip - skip specific patch
80
* next - auto-generate the next available patch name
81
82
h3. Compare to other systems
83
84
Most of other systems differ by their primary usage. South for example mainly used for distributed project support. Our system
85
is simple and straightforward to use, we always know what patch is going to be installed on a production database.