Add basic migrations

This commit is contained in:
Ege Emir Özkan
2020-08-14 11:45:39 +03:00
parent a0bb5704eb
commit 2e14aeaace
19 changed files with 339 additions and 87 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -14,4 +14,10 @@ datalite.fetch module
:undoc-members:
:show-inheritance:
datalite.migrations module
----------------------------
.. automodule:: datalite.migrations
:members:
:undoc-members:
:show-inheritance:

View File

@@ -36,7 +36,7 @@
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="prev" title="datalite" href="modules.html" />
<link rel="prev" title="Welcome to Datalites documentation!" href="index.html" />
</head>
<body class="wy-body-for-nav">
@@ -83,12 +83,10 @@
<p class="caption"><span class="caption-text">Contents:</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="modules.html">datalite</a><ul class="current">
<li class="toctree-l2 current"><a class="current reference internal" href="#">datalite package</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#datalite-module">datalite Module</a></li>
<li class="toctree-l3"><a class="reference internal" href="#module-datalite.fetch">datalite.fetch module</a></li>
</ul>
</li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">datalite package</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#datalite-module">datalite Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="#module-datalite.fetch">datalite.fetch module</a></li>
<li class="toctree-l2"><a class="reference internal" href="#module-datalite.migrations">datalite.migrations module</a></li>
</ul>
</li>
</ul>
@@ -137,8 +135,6 @@
<li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="modules.html">datalite</a> &raquo;</li>
<li>datalite package</li>
@@ -196,10 +192,10 @@
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>All the records of type <a href="#id1"><span class="problematic" id="id2">class_</span></a> in</p>
<dd class="field-even"><p>All the records of type <a href="#id1"><span class="problematic" id="id2">class_</span></a> in
the bound database as a tuple.</p>
</dd>
</dl>
<p>the bound database as a tuple.</p>
</dd></dl>
<dl class="py function">
@@ -252,10 +248,10 @@ provided they fit the given condition</p>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>A tuple of records that fit the given condition</p>
<dd class="field-even"><p>A tuple of records that fit the given condition
of given type <a href="#id9"><span class="problematic" id="id10">class_</span></a>.</p>
</dd>
</dl>
<p>of given type <a href="#id9"><span class="problematic" id="id10">class_</span></a>.</p>
</dd></dl>
<dl class="py function">
@@ -270,10 +266,10 @@ provided they fit the given condition</p>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>A tuple of <a href="#id11"><span class="problematic" id="id12">class_</span></a> type objects whose values</p>
<dd class="field-even"><p>A tuple of <a href="#id11"><span class="problematic" id="id12">class_</span></a> type objects whose values
come from the <a href="#id13"><span class="problematic" id="id14">class_</span></a> bound database.</p>
</dd>
</dl>
<p>come from the <a href="#id13"><span class="problematic" id="id14">class_</span></a> bound database.</p>
</dd></dl>
<dl class="py function">
@@ -316,6 +312,33 @@ given value.</p>
</dl>
</dd></dl>
</div>
<div class="section" id="module-datalite.migrations">
<span id="datalite-migrations-module"></span><h2>datalite.migrations module<a class="headerlink" href="#module-datalite.migrations" title="Permalink to this headline"></a></h2>
<p>Migrations module deals with migrating data when the object
definitions change. This functions deal with Schema Migrations.</p>
<dl class="py function">
<dt id="datalite.migrations.basic_migrate">
<code class="sig-prename descclassname">datalite.migrations.</code><code class="sig-name descname">basic_migrate</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">class_</span><span class="p">:</span> <span class="n">type</span></em>, <em class="sig-param"><span class="n">column_transfer</span><span class="p">:</span> <span class="n">dict</span> <span class="o">=</span> <span class="default_value">None</span></em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#datalite.migrations.basic_migrate" title="Permalink to this definition"></a></dt>
<dd><p>Given a class, compare its previous table,
delete the fields that no longer exist,
create new columns for new fields. If the
column_flow parameter is given, migrate elements
from previous column to the new ones.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>class</strong> Datalite class to migrate.</p></li>
<li><p><strong>column_transfer</strong> A dictionary showing which
columns will be copied to new ones.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>None.</p>
</dd>
</dl>
</dd></dl>
</div>
</div>
@@ -328,7 +351,7 @@ given value.</p>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="modules.html" class="btn btn-neutral float-left" title="datalite" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
<a href="index.html" class="btn btn-neutral float-left" title="Welcome to Datalites documentation!" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>

View File

@@ -150,24 +150,40 @@
<h1 id="index">Index</h1>
<div class="genindex-jumpbox">
<a href="#D"><strong>D</strong></a>
<a href="#B"><strong>B</strong></a>
| <a href="#D"><strong>D</strong></a>
| <a href="#F"><strong>F</strong></a>
| <a href="#I"><strong>I</strong></a>
| <a href="#M"><strong>M</strong></a>
</div>
<h2 id="B">B</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="datalite.html#datalite.migrations.basic_migrate">basic_migrate() (in module datalite.migrations)</a>
</li>
</ul></td>
</tr></table>
<h2 id="D">D</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="datalite.html#datalite.datalite">datalite() (in module datalite)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li>
datalite.fetch
<ul>
<li><a href="datalite.html#module-datalite.fetch">module</a>
</li>
</ul></li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li>
datalite.migrations
<ul>
<li><a href="datalite.html#module-datalite.migrations">module</a>
</li>
</ul></li>
</ul></td>
@@ -209,6 +225,8 @@
<ul>
<li><a href="datalite.html#module-datalite.fetch">datalite.fetch</a>
</li>
<li><a href="datalite.html#module-datalite.migrations">datalite.migrations</a>
</li>
</ul></li>
</ul></td>

View File

@@ -162,6 +162,7 @@ sqlite3 database.</p>
<li class="toctree-l1"><a class="reference internal" href="datalite.html">datalite package</a><ul>
<li class="toctree-l2"><a class="reference internal" href="datalite.html#datalite-module">datalite Module</a></li>
<li class="toctree-l2"><a class="reference internal" href="datalite.html#module-datalite.fetch">datalite.fetch module</a></li>
<li class="toctree-l2"><a class="reference internal" href="datalite.html#module-datalite.migrations">datalite.migrations module</a></li>
</ul>
</li>
</ul>

View File

@@ -2,4 +2,6 @@
# Project: Datalite
# Version:
# The remainder of this file is compressed using zlib.
<EFBFBD><EFBFBD>N<EFBFBD>0<10>w?<3F>!XS<58>ڙ<EFBFBD><01>cu<63>/<2F><><EFBFBD>ncG<63><47><EFBFBD><EFBFBD><EFBFBD>x<12><>C<EFBFBD><43><04><12>~<7E><><EFBFBD><EFBFBD><EFBFBD><1B><>6<EFBFBD><36><EFBFBD><01><><EFBFBD><EFBFBD>;<3B><>Q^ձ<><D5B1>(ԷRR<52>u<EFBFBD>7<EFBFBD>tLp{f<16><><EFBFBD><EFBFBD>w<EFBFBD><77><17>e<EFBFBD>rXƖ<58>o<EFBFBD><6F><EFBFBD><>*Z<><5A><EFBFBD><EFBFBD>^<5E>ڰ=<0E><><EFBFBD><EFBFBD><10>Y<1B><>8s<38><73><17>_<EFBFBD>"U<><55><EFBFBD><EFBFBD><EFBFBD>a<>'hTzH<7A>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X<EFBFBD><58> z<><7A> <09><><67><D790><EFBFBD>|<7C><><0E><12><><EFBFBD><EFBFBD>@<40>=J%Vz<17><>Y<EFBFBD><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD>c<EFBFBD><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40><0E><><EFBFBD><EFBFBD> <09>$<24><><EFBFBD>f_`26<32>
<EFBFBD>=N<EFBFBD>0<10><EFBFBD><EFBFBD>b<10><><EFBFBD>ݚ<EFBFBD>i%
<EFBFBD>hbO <0B><>ڎ <1D><>z<EFBFBD><7A>8<EFBFBD><38><EFBFBD> <09><><1A>y<EFBFBD><79><<3C>%F<>*R!<21><0E><><EFBFBD>Y<EFBFBD><59>Y.<2E>h<EFBFBD><68>
<EFBFBD>ٷRSm<>';Mp{af9<66><39><EFBFBD>Z<EFBFBD><5A>+<2B>&<26><><><EAB08D>3<EFBFBD>HUo<55><><DA86><EFBFBD>-<2D>ը

View File

@@ -169,6 +169,11 @@
<td>&#160;&#160;&#160;
<a href="datalite.html#module-datalite.fetch"><code class="xref">datalite.fetch</code></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
<a href="datalite.html#module-datalite.migrations"><code class="xref">datalite.migrations</code></a></td><td>
<em></em></td></tr>
</table>

View File

@@ -1 +1 @@
Search.setIndex({docnames:["datalite","index","modules"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,sphinx:56},filenames:["datalite.rst","index.rst","modules.rst"],objects:{"datalite.fetch":{fetch_all:[0,0,1,""],fetch_equals:[0,0,1,""],fetch_from:[0,0,1,""],fetch_if:[0,0,1,""],fetch_range:[0,0,1,""],fetch_where:[0,0,1,""],is_fetchable:[0,0,1,""]},datalite:{datalite:[0,0,1,""],fetch:[0,1,0,"-"]}},objnames:{"0":["py","function","Python function"],"1":["py","module","Python module"]},objtypes:{"0":"py:function","1":"py:module"},terms:{"class":0,"default":0,"int":0,"new":0,"return":0,The:0,add:0,all:0,ani:0,arg:[],argument:[],bind:[0,1],bool:0,bound:0,callabl:0,can:1,check:0,class_:0,close:0,come:0,common:[],condit:0,content:[],convert:[],count:0,create_entri:0,data:0,databas:[0,1],dataclass:[0,1],datalite_decor:[],db_path:0,decor:[],defin:[],dict:0,dictionari:0,each:0,element:0,element_count:0,fetch:[1,2],fetch_al:0,fetch_equ:0,fetch_from:0,fetch_if:0,fetch_rang:0,fetch_wher:0,fetchabl:0,fetchal:0,field:0,fit:0,from:0,get:[],given:0,ids:0,index:1,insert:[],insert_pagin:[],is_fetch:0,its:0,kwarg:[],librari:1,mean:0,method:0,modifi:[],modul:[1,2],none:0,number:[],obj_id:0,object:0,option:0,overload:0,packag:[1,2],page:[0,1],pagin:[],param:[],paramet:0,path:0,provid:0,python:1,queri:[],rang:0,range_:0,record:0,remove_entri:0,remove_from:[],retriev:0,search:1,simpl:1,sqlite3:[0,1],str:0,submodul:[],taken:0,thei:0,thi:0,tupl:0,type:0,type_overload:0,uniqu:0,update_entri:0,use:1,used:[],valu:0,variabl:0,which:0,whose:0},titles:["datalite package","Welcome to Datalite\u2019s documentation!","datalite"],titleterms:{common:[],content:1,datalit:[0,1,2],datalite_decor:[],document:1,fetch:0,indic:1,modul:0,packag:0,submodul:[],tabl:1,welcom:1}})
Search.setIndex({docnames:["datalite","index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,sphinx:56},filenames:["datalite.rst","index.rst"],objects:{"datalite.fetch":{fetch_all:[0,0,1,""],fetch_equals:[0,0,1,""],fetch_from:[0,0,1,""],fetch_if:[0,0,1,""],fetch_range:[0,0,1,""],fetch_where:[0,0,1,""],is_fetchable:[0,0,1,""]},"datalite.migrations":{basic_migrate:[0,0,1,""]},datalite:{datalite:[0,0,1,""],fetch:[0,1,0,"-"],migrations:[0,1,0,"-"]}},objnames:{"0":["py","function","Python function"],"1":["py","module","Python module"]},objtypes:{"0":"py:function","1":"py:module"},terms:{"class":0,"default":0,"function":0,"int":0,"new":0,"return":0,The:0,add:0,all:0,ani:0,arg:[],argument:[],basic_migr:0,bind:[0,1],bool:0,bound:0,callabl:0,can:1,chang:0,check:0,class_:0,close:0,column:0,column_flow:0,column_transf:0,come:0,common:[],compar:0,condit:0,content:[],convert:[],copi:0,count:0,creat:0,create_entri:0,data:0,databas:[0,1],dataclass:[0,1],datalite_decor:[],db_path:0,deal:0,decor:[],defin:[],definit:0,delet:0,dict:0,dictionari:0,each:0,element:0,element_count:0,exist:0,fetch:1,fetch_al:0,fetch_equ:0,fetch_from:0,fetch_if:0,fetch_rang:0,fetch_wher:0,fetchabl:0,fetchal:0,field:0,fit:0,from:0,get:[],given:0,ids:0,index:1,insert:[],insert_pagin:[],is_fetch:0,its:0,kwarg:[],librari:1,longer:0,mean:0,method:0,migrat:1,modifi:[],modul:1,none:0,number:[],obj_id:0,object:0,ones:0,option:0,overload:0,packag:1,page:[0,1],pagin:[],param:[],paramet:0,path:0,previou:0,provid:0,python:1,queri:[],rang:0,range_:0,record:0,remove_entri:0,remove_from:[],retriev:0,schema:0,search:1,show:0,simpl:1,sqlite3:[0,1],str:0,submodul:[],tabl:0,taken:0,thei:0,thi:0,tupl:0,type:0,type_overload:0,uniqu:0,update_entri:0,use:1,used:[],valu:0,variabl:0,when:0,which:0,whose:0},titles:["datalite package","Welcome to Datalite\u2019s documentation!"],titleterms:{common:[],content:1,datalit:[0,1],datalite_decor:[],document:1,fetch:0,indic:1,migrat:0,modul:0,packag:0,submodul:[],tabl:1,welcom:1}})

View File

@@ -23,7 +23,7 @@ copyright = '2020, Ege Ozkan'
author = 'Ege Ozkan'
# The full version, including alpha/beta/rc tags
release = 'v0.5.2'
release = 'v0.5.3'
# -- General configuration ---------------------------------------------------

View File

@@ -14,4 +14,10 @@ datalite.fetch module
:undoc-members:
:show-inheritance:
datalite.migrations module
----------------------------
.. automodule:: datalite.migrations
:members:
:undoc-members:
:show-inheritance:

View File

@@ -1,7 +0,0 @@
datalite
========
.. toctree::
:maxdepth: 4
datalite