Changes between Initial Version and Version 1 of BluePrint/DatabaseMigration


Ignore:
Timestamp:
06/08/12 03:08:32 (9 years ago)
Author:
anubhav
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • BluePrint/DatabaseMigration

    v1 v1  
     1= GSOC 2012 , Database Migration =
     2[[TOC]]
     3== Work Flow ==
     4=== Merger ===
     5{{{
     6#!html
     7<p class="MsoNormal" style="margin-bottom: .0001pt;"><span style="font-size: 12.0pt; line-height: 115%; font-family: 'Garamond','serif';">
     8There would be a view that shows the Database Migration Screen (as explained below) . There would be folder in models which will be loaded only when this view is called . This model will have the comparing script that track schema changes ( as explained below ) . This script will compare the current database( the version which merger is about to push or merge to the trunk),  with the DAL instance serialized (which will be made part of the trunk).
     9<br />
     10<br />
     11<b>Thus whenever the merger runs this view a migration script is generated which is stored in the Database folder along with the Current DAL instance serialized which is used for future mergers .
     12<br />
     13Thus 2 extra things will be stored in the Database folder in the trunk too. Thus whenever somebody pulls from the trunk this current DAL instance he pulled shall be used to compare with the changes he do in the future
     14</b>
     15<br />
     16<br />
     17</span></p>
     18}}}
     19=== SysAdmin ===
     20{{{
     21#!html
     22<p class="MsoNormal" style="margin-bottom: .0001pt;"><span style="font-size: 12.0pt; line-height: 115%; font-family: 'Garamond','serif';">
     23
     24This is active at the time the pull request is entertained by the sysadmin who merges with the trunk. Thus he need to travel from commit t to commit k . There can be git hooks attached with the "git pull" which will make the migration script present in the revision (provided by developer ) run . If any discrepancies are found between the schema changes and the migration script suggested by the developer thus the data cannot be migrated , then we would inform the sysadmin about the problem sysadmin is then presented the migration script to customize to requirements needed . This can be done all the way from commit t to commit k .
     25
     26}}}
     27
     28== Tracking Schema Changes ==
     29{{{
     30#!html
     31<p class="MsoNormal" style="margin-bottom: .0001pt;"><span style="font-size: 12.0pt; line-height: 115%; font-family: 'Garamond','serif';">I will create a python code which uses two instances of Database Variables which are initialized using DAL.The current Instances of Eden will also store the (serialized) DAL instance from the previous revision (the Last Commit). One Database Variable points to the Database files of the current instance, while the other variable can be obtained by de-serializing the DAL instance stored. Then from the Database Variable we will extract the table names, their fields and the constraints including the foreign key constraint in the form of a Python Dict. This code will be merged with the <span class="GramE">topo.py(</span> in</span> static\scripts\tools ) to arrange the extracted Database tables in the topological order which will aid the comparison of the two Database Dict which represent the schemas of the two revisions .
     32
     33<br />
     34<br />I have created a running prototype of the code that extracts the Database Dict from the Current Instance:-</span><a href="http://paste.pocoo.org/show/573397/">http://paste.pocoo.org/show/573397/</a></p>
     35<br />
     36
     37<p class="MsoNormal" style="margin-bottom: .0001pt;"><span style="font-size: 12.0pt; line-height: 115%; font-family: 'Garamond','serif';">This Comparison will get the changes in the form of a Dict which will have 2 keys &ldquo;appeared&rdquo; and &ldquo;disappeared&rdquo; corresponds to the fields or tables which are new to the database and the fields which are not the therein the database anymore respectively ,
     38<br />
     39e.g  - dbChanges[&ldquo;appeared&rdquo;][&ldquo;&lt;Table name&gt;_&lt;Field name&gt; &rdquo;]
     40<br />
     41The details of these fields can be obtained from the respective Database Dict. These changes in the database can be used to predict the changes in the database. </span></p>
     42<p class="MsoNormal" style="margin-bottom: .0001pt;"><span style="font-size: 12.0pt; line-height: 115%; font-family: 'Garamond','serif';"><br /></span></p>
     43<div class="WordSection1">
     44<table class="MsoTableGrid" style="border-collapse: collapse; border: none;" border="1" cellspacing="0" cellpadding="0">
     45<tbody>
     46<tr>
     47<td style="width: 154.0pt; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="205">
     48<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;">NEW CHANGES IN THE DATABASE</p>
     49</td>
     50<td style="width: 154.05pt; border: solid windowtext 1.0pt; border-left: none; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="205">
     51<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;">DISAPPEARED CHANGES IN THE OLD DATABASE</p>
     52</td>
     53<td style="width: 154.05pt; border: solid windowtext 1.0pt; border-left: none; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="205">
     54<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;">INFERENCE</p>
     55</td>
     56</tr>
     57<tr>
     58<td style="width: 154.0pt; border: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="205">
     59<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;">A field has appeared in a particular table</p>
     60</td>
     61<td style="width: 154.05pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="205">
     62<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;">&nbsp;A field has disappeared from the same table to which a field has appeared, marching the type of the appeared field.</p>
     63</td>
     64<td style="width: 154.05pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="205">
     65<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;">If only one pair of such a change is detected per table , we can infer that it is <strong><span style="text-decoration: underline;"><span style="font-family: 'Calibri','sans-serif';"><span>renamed</span></span></span></strong></p>
     66</td>
     67</tr>
     68<tr>
     69<td style="width: 154.0pt; border: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="205">
     70<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;">A field has appeared in a particular table</p>
     71</td>
     72<td style="width: 154.05pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="205">
     73<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;">&nbsp;A field has disappeared from the same table with same&nbsp; name but different type</p>
     74</td>
     75<td style="width: 154.05pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="205">
     76<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;">The type of the field has <strong><span><span style="text-decoration: underline;"><span style="font-family: 'Calibri','sans-serif';">changed</span></span></span></strong></p>
     77</td>
     78</tr>
     79<tr>
     80<td style="width: 154.0pt; border: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="205">
     81<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;">&nbsp;A field has appeared in the particular table</p>
     82</td>
     83<td style="width: 154.05pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="205">
     84<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;">No field has disappeared from that field</p>
     85</td>
     86<td style="width: 154.05pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="205">
     87<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;">A field is <strong><span><span style="text-decoration: underline;"><span style="font-family: 'Calibri','sans-serif';">added</span></span></span></strong></p>
     88</td>
     89</tr>
     90<tr>
     91<td style="width: 154.0pt; border: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="205">
     92<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;">&nbsp;No field is appeared in particular table</p>
     93</td>
     94<td style="width: 154.05pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="205">
     95<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;">A field has disappeared from that table</p>
     96</td>
     97<td style="width: 154.05pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="205">
     98<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;">A field is <strong><span style="text-decoration: underline;"><span style="font-family: 'Calibri','sans-serif';"><span>deleted</span></span></span></strong></p>
     99</td>
     100</tr>
     101</tbody>
     102</table>
     103<p class="MsoNormal">&nbsp;</p>
     104</div>
     105<p class="MsoNormal" style="margin-bottom: .0001pt;"><span style="font-size: 12.0pt; line-height: 115%; font-family: 'Garamond','serif';"><span style="mso-spacerun: yes;">&nbsp;We can also infer the intentions of the developers using the appeared and the disappeared fields . These can be made use to get the default match-ups for the database migration screen . <br /></span></span></p>
     106<p class="MsoNormal" style="margin-bottom: .0001pt;"><span style="font-size: 12.0pt; line-height: 115%; font-family: 'Garamond','serif';">Using DAL for tracking purpose also allows us to get the changes from different database management systems like<span style="font-family: georgia,palatino; ; font-size: small;"> <span style="background: white;">PostgreSQL, MySQL</span>,</span></span><span style="font-family: georgia,palatino; ; font-size: small;"><span style="background: white; line-height: 115%;">SQLite<span class="apple-converted-space">&nbsp;</span></span><span style="line-height: 115%;">etc.</span></span></p>
     107<br />
     108<br />
     109}}}
     110== Scripts to be generated for different scenarios ==
     111{{{
     112#!html
     113<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;"><strong><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; color: #222222;">&nbsp;</span></strong></p>
     114<ul style="margin-top: 0cm;" type="disc">
     115<li class="MsoNormal" style="color: #222222; margin-bottom: .0001pt; line-height: normal; mso-list: l2 level1 lfo1; tab-stops: list 36.0pt;"><strong><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; mso-fareast-font-family: 'Times New Roman';">Rename of any Field</span></strong></li>
     116</ul>
     117<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;"><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; color: #222222;">This kind of a change is most common in the database schema. A select query will be performed in the previous database variable.&nbsp; And the <span class="SpellE">dict</span> of the row will be obtained from select query in the DAL.</span></p>
     118<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;"><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; color: #222222;">The name of the key of the <span class="SpellE"><span class="GramE">dict</span></span><span class="GramE">(</span>row) that corresponds to the renamed field will be changed. Now the new database is checked if that row or tuple is already present it will not be inserted. However if the row is not there an insert query will be performed.&nbsp; </span></p>
     119<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;"><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; color: #222222;">&nbsp;</span></p>
     120<ul style="margin-top: 0cm;" type="disc">
     121<li class="MsoNormal" style="color: #222222; margin-bottom: .0001pt; line-height: normal; mso-list: l1 level1 lfo2; tab-stops: list 36.0pt;"><strong><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; mso-fareast-font-family: 'Times New Roman';">Changing Type of the field </span></strong></li>
     122</ul>
     123<p class="MsoListParagraph" style="margin: 0cm; margin-bottom: .0001pt;"><span style="font-size: 12.0pt; line-height: 115%; font-family: 'Garamond','serif';">If any change in the type of a field (like from string to integer) is detected, we will ask him to map the values from the previous data field to new values that he intends to put in the database. These mappings will be asked using the Database Migration Screen.</span></p>
     124<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;"><span class="SpellE"><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; color: #222222;">e.g</span></span><span style="font-size: 10.0pt; font-family: 'Garamond','serif'; color: #222222;">{1: <span class="GramE">T(</span>"First option"),2: T("Second option")}</span></p>
     125<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;"><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; color: #222222;">Now a select query will be performed on the previous database to get the tuples of the table. After that the value of the particular field can be changed according to the mapping function. These tuples can then be inserted into the new database using DAL. If some values are not mentioned in the mapping functions those can be explicitly type casted.</span></p>
     126<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;"><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; color: #222222;">We can also use mapping for cases in which the schema is not changed however the values within a field needs to be revised according to the present needs .This has been discussed in database migration screen.</span></p>
     127<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;"><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; color: #222222;">&nbsp;</span></p>
     128<ul style="margin-top: 0cm;" type="disc">
     129<li class="MsoNormal" style="color: #222222; margin-bottom: .0001pt; line-height: normal; mso-list: l6 level1 lfo3; tab-stops: list 36.0pt;"><strong><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; mso-fareast-font-family: 'Times New Roman';">Adding fields:</span></strong></li>
     130</ul>
     131<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;"><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; color: #222222;">I will look for the default values in the models for that field. If a default value is found then I could add that values in all the tuples. However if no default value is found we will add null in the newly formed field.</span></p>
     132<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;"><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; color: #222222;">However this approach will not work well if there are the following constraints.&nbsp;</span></p>
     133<p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: .0001pt; margin-left: 18.0pt; text-indent: -18.0pt; line-height: normal;"><span class="GramE"><span style="font-size: 12.0pt; font-family: 'Courier New'; color: #222222;">o</span></span><span style="font-size: 7.0pt; font-family: 'Times New Roman','serif'; color: #222222;">&nbsp;&nbsp; </span><strong><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; color: #222222;">Field is not null:</span></strong></p>
     134<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;"><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; color: #222222;">This constraint will create a problem if no default value is found in the <span class="GramE">models .</span> In this case we will ask the developer to specify the default value. </span></p>
     135<p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: .0001pt; margin-left: 18.0pt; text-indent: -18.0pt; line-height: normal;"><span class="GramE"><span style="font-size: 12.0pt; font-family: 'Courier New'; color: #222222;">o</span></span><span style="font-size: 7.0pt; font-family: 'Times New Roman','serif'; color: #222222;">&nbsp;&nbsp; </span><strong><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; color: #222222;">Field is unique and not null:</span></strong></p>
     136<p class="MsoNormal" style="margin-bottom: 12.0pt; line-height: normal;"><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; color: #222222;">In this case we will copy one of the existing fields into the new field which has the same type as the appeared <span class="GramE">field .</span> I will them inform the developer about this rule.&nbsp; </span></p>
     137<p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: .0001pt; margin-left: 36.15pt; text-indent: -18.0pt; line-height: normal;"><span style="font-size: 12.0pt; font-family: Symbol; color: #222222;">&middot;</span><span style="font-size: 7.0pt; font-family: 'Times New Roman','serif'; color: #222222;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><strong><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; color: #222222;">Removing a Field:</span></strong></p>
     138<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;"><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; color: #222222;">This can be tackled by taking a obtaining the tuples of the previous database instance through select query and do not include the field while writing the insert query in the DAL. Though an error will be prompted if </span></p>
     139<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;"><strong><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; color: #222222;">&nbsp;</span></strong></p>
     140<ul style="margin-top: 0cm;" type="disc">
     141<li class="MsoNormal" style="color: #222222; margin-bottom: .0001pt; line-height: normal; mso-list: l3 level1 lfo4; tab-stops: list 36.0pt;"><strong><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; mso-fareast-font-family: 'Times New Roman';">(Removing a Table)Merge n Tables in 1 Table:</span></strong></li>
     142</ul>
     143<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;"><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; color: #222222;">Though this case is very rare and but still this case could be troublesome. In this scenario I can take the natural joint of the tuples in the tables of the previous database.</span></p>
     144<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;"><strong><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; color: #222222;">&nbsp;</span></strong></p>
     145<ul style="margin-top: 0cm;" type="disc">
     146<li class="MsoNormal" style="color: #222222; margin-bottom: .0001pt; line-height: normal; mso-list: l7 level1 lfo5; tab-stops: list 36.0pt;"><strong><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; mso-fareast-font-family: 'Times New Roman';">(Adding a Table)Splitting 1 Tables into n Table:</span></strong></li>
     147</ul>
     148<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal;"><span style="font-size: 12.0pt; font-family: 'Garamond','serif'; color: #222222;">I will break the tuples into two <span class="SpellE">dicts</span> according to their new tables and then eliminate duplicate rows in both. After this I will insert the tuples into <span class="GramE">the their</span> respective tables.</span></p>
     149<p class="MsoListParagraph" style="margin: 0cm; margin-bottom: .0001pt;"><span style="font-size: 16.0pt; line-height: 115%; font-family: 'Garamond','serif'; color: #00b050;">&nbsp;</span></p>
     150}}}
     151== Database Migration Screen ==
     152{{{
     153#!html
     154<p class="MsoNormal" style="margin-bottom: .0001pt;"><span style="font-size: 12.0pt; line-height: 115%; font-family: 'Garamond','serif';">I have created a wire frame for this section: <a href="http://www.freeimagehosting.net/newuploads/jtzba.png">http://www.freeimagehosting.net/newuploads/jtzba.png</a></span></p>
     155<p class="MsoNormal" style="margin-bottom: .0001pt;"><span style="font-size: 12.0pt; line-height: 115%; font-family: 'Garamond','serif';">&nbsp;</span></p>
     156<p class="MsoListParagraph" style="margin: 0cm; margin-bottom: .0001pt;"><span style="font-size: 12.0pt; line-height: 115%; font-family: 'Garamond','serif';">This screen will list all the appeared fields in one column while all the removed fields will form a drop down menu for each appeared field. </span></p>
     157<p class="MsoListParagraph" style="margin: 0cm; margin-bottom: .0001pt;"><span style="font-size: 12.0pt; line-height: 115%; font-family: 'Garamond','serif';">This will allow him to match-up the fields if he has renamed a field in Table. If any appeared field is not matched up to a disappeared field, this would tell us that he intended to make a new field similarly if any disappeared field is not matched to an appeared field, this would indicate that a field has been disappeared.</span></p>
     158<p class="MsoListParagraph" style="margin: 0cm; margin-bottom: .0001pt;"><span style="font-size: 12.0pt; line-height: 115%; font-family: 'Garamond','serif';">Also if any change in the type of a field is detected, we will ask him to map the values as explained in the previous script. </span></p>
     159<p class="MsoListParagraph" style="margin: 0cm; margin-bottom: .0001pt;"><span style="font-size: 12.0pt; line-height: 115%; font-family: 'Garamond','serif';">&nbsp;</span></p>
     160<p class="MsoListParagraph" style="margin: 0cm; margin-bottom: .0001pt;"><span style="font-size: 12.0pt; line-height: 115%; font-family: 'Garamond','serif';">Also it will allow to match the values from the previous data field to new values , even if the name and the type of a field is unchanged though the functionality of that field has changed, for this they will have select the tables and the fields from a drop down menu and also add there mapping function.</span></p>
     161<p class="MsoListParagraph" style="margin: 0cm; margin-bottom: .0001pt;"><span style="font-size: 12.0pt; line-height: 115%; font-family: 'Garamond','serif';">After this screen a script will be generated for him, in which he can make any changes that he requires and execute the script. He could also tell us to execute the <span class="GramE">script,</span> in that case we would run the script. </span></p>
     162<p class="MsoListParagraph" style="margin: 0cm; margin-bottom: .0001pt;"><span class="apple-style-span"><span style="font-size: 12.0pt; line-height: 115%; font-family: 'Garamond','serif';">&nbsp;</span></span></p>
     163}}}
     164== Project Goals and Timelines ==
     165{{{
     166#!html
     167
     168<table class="MsoNormalTable" style="border-collapse: collapse; mso-yfti-tbllook: 1184; mso-table-lspace: 9.0pt; margin-left: 6.75pt; mso-table-rspace: 9.0pt; margin-right: 6.75pt; mso-table-anchor-vertical: margin; mso-table-anchor-horizontal: margin; mso-table-left: left; mso-table-top: -1098.0pt; mso-padding-alt: 0cm 0cm 0cm 0cm;" border="0" cellspacing="0" cellpadding="0" align="left">
     169<tbody>
     170<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes;">
     171<td style="width: 104.65pt; border: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="140">
     172<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><strong><span style="text-decoration: underline;">Trimester</span></strong></p>
     173</td>
     174<td style="width: 77.95pt; border: solid windowtext 1.0pt; border-left: none; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="104">
     175<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><strong><span style="text-decoration: underline;">TIMELINE</span></strong></p>
     176</td>
     177<td style="width: 9.0cm; border: solid windowtext 1.0pt; border-left: none; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="340">
     178<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><strong><span style="text-decoration: underline;">THE TASK</span></strong></p>
     179</td>
     180<td style="width: 96.35pt; border: solid windowtext 1.0pt; border-left: none; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="128">
     181<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><strong><span style="text-decoration: underline;">MEASURE</span></strong></p>
     182</td>
     183</tr>
     184<tr></tr>
     185<tr style="mso-yfti-irow: 2;">
     186<td style="width: 104.65pt; border: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt;" rowspan="3" valign="top" width="140">
     187<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     188<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     189<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     190<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     191<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     192<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     193<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><strong><span style="text-decoration: underline;"><span style="font-size: 10.5pt; color: black;">Second Trimester</span></span></strong></span></p>
     194<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span style="font-family: georgia,palatino;"><span class="apple-style-span"><span style="color: black; font-size: 10.5pt;">(</span></span><span style="background: white; color: black; font-size: 10pt;">22 May - 9 July</span><span class="apple-style-span"><span style="color: black; font-size: 10.5pt;">)</span></span></span></p>
     195<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     196</td>
     197<td style="width: 77.95pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="104">
     198<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     199<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     200<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">2 june&nbsp; - 15 June </span></span></p>
     201<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     202<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     203</td>
     204<td style="width: 9.0cm; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="340">
     205<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">Complete the Detecting Mechanism</p>
     206<p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: .0001pt; margin-left: 45.8pt; text-indent: -18.0pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">1.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Build the script that extracts the database schema and arrange them in topological order.</p>
     207<p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: .0001pt; margin-left: 45.8pt; text-indent: -18.0pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">2.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Build a script that compares the differences between the database schema of the current instance and previous revision</p>
     208<p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: .0001pt; margin-left: 45.8pt; text-indent: -18.0pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">3.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Generate reports using the <span class="SpellE">dict</span> of&nbsp; the <span class="SpellE">dbChanges</span></p>
     209<p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: .0001pt; margin-left: 45.8pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">&nbsp;</p>
     210</td>
     211<td style="width: 96.35pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="128">
     212<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">This can be tested&nbsp; by generating reports after doing some changes in the database schema</p>
     213</td>
     214</tr>
     215<tr style="mso-yfti-irow: 3;">
     216<td style="width: 77.95pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="104">
     217<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     218<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     219<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">16 June &ndash; 2 July</span></span></p>
     220<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     221<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     222</td>
     223<td style="width: 9.0cm; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="340">
     224<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">Create Scripts for different scenarios</p>
     225<p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: .0001pt; margin-left: 41.2pt; text-indent: -18.0pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">1.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp; </span>Create python code for renaming a field , adding a field and removing a field</p>
     226<p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: .0001pt; margin-left: 41.2pt; text-indent: -18.0pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">2.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp; </span>For changing the type the mapping function will be taken from a file, which could be changed to test</p>
     227<p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: .0001pt; margin-left: 41.2pt; text-indent: -18.0pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">3.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp; </span>Also create code for merging and splitting tables</p>
     228<p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: .0001pt; margin-left: 41.2pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">&nbsp;</p>
     229</td>
     230<td style="width: 96.35pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="128">
     231<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">This portion of the code can be tested by choosing a script specific to the scenario created by changing schema and then applying it.</p>
     232</td>
     233</tr>
     234<tr style="mso-yfti-irow: 4;">
     235<td style="width: 77.95pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="104">
     236<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     237<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     238<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     239<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">3 July &ndash; 9July</span></span></p>
     240<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     241<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     242</td>
     243<td style="width: 9.0cm; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="340">
     244<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">Before the Mid-Term evaluation, I would like to concentrate on:-</p>
     245<p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: .0001pt; margin-left: 38.3pt; text-indent: -18.0pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">1.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp; </span>Debugging the Code</p>
     246<p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: .0001pt; margin-left: 38.3pt; text-indent: -18.0pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">2.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp; </span>Updating documentations , developer guidelines and functional specifications</p>
     247<p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: .0001pt; margin-left: 38.3pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">&nbsp;</p>
     248</td>
     249<td style="width: 96.35pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="128">
     250<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">&nbsp;</p>
     251</td>
     252</tr>
     253<tr style="mso-yfti-irow: 5;">
     254<td style="width: 104.65pt; border: solid windowtext 1.0pt; border-top: none; padding: 0cm 5.4pt 0cm 5.4pt;" rowspan="3" valign="top" width="140">
     255<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     256<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     257<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     258<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     259<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     260<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     261<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><strong><span style="text-decoration: underline;"><span style="font-size: 10.5pt; color: black;">Third Trimester</span></span></strong></span></p>
     262<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span style="font-family: georgia,palatino;"><span class="apple-style-span"><span style="color: black; font-size: 10.5pt;">(</span></span><span style="background: white; color: black; font-size: 10pt;">10 July - 13 August</span><span class="apple-style-span"><span style="color: black; font-size: 10.5pt;">)</span></span></span></p>
     263<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     264</td>
     265<td style="width: 77.95pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="104">
     266<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     267<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     268<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">10 July </span></span></p>
     269<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&ndash; 25 July</span></span></p>
     270<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     271<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     272</td>
     273<td style="width: 9.0cm; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="340">
     274<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">Build Database Migration screen:-</p>
     275<ol style="margin-top: 0cm;" type="1" start="1">
     276<li class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-list: l4 level1 lfo6; tab-stops: list 36.0pt; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span style="mso-fareast-font-family: 'Times New Roman';">Showing the appeared and disappeared field for match-ups </span></li>
     277</ol>
     278<p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: .0001pt; margin-left: 36.0pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">That indicates renaming.</p>
     279<ol style="margin-top: 0cm;" type="1" start="2">
     280<li class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-list: l0 level1 lfo7; tab-stops: list 36.0pt; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span style="mso-fareast-font-family: 'Times New Roman';">Allow writing mapping functions for the type change or for any other field</span></li>
     281</ol>
     282<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">Unifying the user interface with the Scripts.</p>
     283<ol style="margin-top: 0cm;" type="1" start="1">
     284<li class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-list: l5 level1 lfo8; tab-stops: list 36.0pt; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-list: l5 level1 lfo8; tab-stops: list 36.0pt; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">Choose the script accordingly and feed the values of tables and fields to the script</span></li>
     285</ol></td>
     286<td style="width: 96.35pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="128">
     287<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">&nbsp;</p>
     288</td>
     289</tr>
     290<tr style="mso-yfti-irow: 6;">
     291<td style="width: 77.95pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="104">
     292<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     293<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">26 July&nbsp; </span></span></p>
     294<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&ndash; 6 August</span></span></p>
     295<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     296</td>
     297<td style="width: 9.0cm; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="340"><ol style="margin-top: 0cm;" type="1" start="1">
     298<li class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-list: l5 level1 lfo8; tab-stops: list 36.0pt; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span style="mso-fareast-font-family: 'Times New Roman';">Also allow the user to custom the script .By copying the script and telling the developer about that location</span></li>
     299<li class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-list: l5 level1 lfo8; tab-stops: list 36.0pt; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">Make the script iterate-able and run the script between 2 arbitrary commits.&nbsp;</li>
     300</ol></td>
     301<td style="width: 96.35pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="128">
     302<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">Final testing can be performed. By changing any field and observing the results.</p>
     303</td>
     304</tr>
     305<tr style="mso-yfti-irow: 7; mso-yfti-lastrow: yes;">
     306<td style="width: 77.95pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="104">
     307<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     308<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     309<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">7 August </span></span></p>
     310<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&ndash; 13 August</span></span></p>
     311<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;"><span class="apple-style-span"><span style="font-size: 10.5pt; color: black;">&nbsp;</span></span></p>
     312</td>
     313<td style="width: 9.0cm; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="340">
     314<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">I will like to concentrating on the following things before the End term Evaluation:-</p>
     315<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">&nbsp;</p>
     316<p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: .0001pt; margin-left: 36.15pt; text-indent: -18.0pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">1.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Debugging the code for errors</p>
     317<p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: .0001pt; margin-left: 36.15pt; text-indent: -18.0pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">2.<span style="font-size: 7.0pt; font-family: 'Times New Roman','serif';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Updating documentation for the code , also writing user guidelines</p>
     318</td>
     319<td style="width: 96.35pt; border-top: none; border-left: none; border-bottom: solid windowtext 1.0pt; border-right: solid windowtext 1.0pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top" width="128">
     320<p class="MsoNormal" style="margin-bottom: .0001pt; line-height: normal; mso-element: frame; mso-element-frame-hspace: 9.0pt; mso-element-wrap: around; mso-element-anchor-horizontal: margin; mso-element-top: -1098.0pt; mso-height-rule: exactly;">&nbsp;</p>
     321</td>
     322</tr>
     323</tbody>
     324</table>
     325<p class="MsoNormal"><strong><span style="font-family: 'Garamond','serif';">&nbsp;</span></strong></p>
     326<p class="MsoNormal" style="margin-bottom: .0001pt;"><span style="font-size: 12.0pt; line-height: 115%; font-family: 'Garamond','serif';">&nbsp;</span></p>
     327}}}