Project

General

Profile

DjHDGutilsPatchManager » History » Version 2

Alex V Koval, 08/09/2012 11:54 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 sequentual 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
h3. Patch names
18
19
Patches can be named automatically that is for *next* command is made:
20
21
<pre>
22
(env)djyp $ ./manage.py patch next
23
File /someproject/migrations/00636-avk-654.sql has been created
24
	size: 0
25
</pre>
26
27
Filename consists from:
28
29
 * 00636 - patch number
30
 * avk - developer name
31
 * 654 - the random part to ensure that patch names do not interfer with same developer different branch
32
33
h3. Commands
34
35
* list - list pending patches
36
* install - install PatchManager track model table
37
* up - update project to latest migration
38
* skip - skip specific patch
39
* next - auto-generate the next available patch name
40
41
h3. Compare to other systems
42
43
Most of other systems differ by their primary usage. South for example mainly used for distributed project support. Our system
44
is simple and straightforward to use, we always know what patch is going to be installed on a production database.