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. |