JezK
Edit File: script.html
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" /> <title>Script Directory — Alembic 1.8.1 documentation</title> <link rel="stylesheet" type="text/css" href="../_static/pygments.css" /> <link rel="stylesheet" type="text/css" href="../_static/nature_override.css" /> <link rel="stylesheet" type="text/css" href="../_static/copybutton.css" /> <link rel="stylesheet" type="text/css" href="../_static/changelog.css" /> <link rel="stylesheet" type="text/css" href="../_static/sphinx_paramlinks.css" /> <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> <script src="../_static/jquery.js"></script> <script src="../_static/underscore.js"></script> <script src="../_static/doctools.js"></script> <script src="../_static/clipboard.min.js"></script> <script src="../_static/copybutton.js"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> <link rel="next" title="DDL Internals" href="ddl.html" /> <link rel="prev" title="Autogeneration" href="autogenerate.html" /> </head><body> <div class="related" role="navigation" aria-label="related navigation"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> <li class="right" > <a href="../py-modindex.html" title="Python Module Index" >modules</a> |</li> <li class="right" > <a href="ddl.html" title="DDL Internals" accesskey="N">next</a> |</li> <li class="right" > <a href="autogenerate.html" title="Autogeneration" accesskey="P">previous</a> |</li> <li class="nav-item nav-item-0"><a href="../index.html">Alembic 1.8.1 documentation</a> »</li> <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">API Details</a> »</li> <li class="nav-item nav-item-this"><a href="">Script Directory</a></li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body" role="main"> <section id="script-directory"> <span id="alembic-script-toplevel"></span><h1>Script Directory<a class="headerlink" href="#script-directory" title="Permalink to this headline">¶</a></h1> <p>The <a class="reference internal" href="#alembic.script.ScriptDirectory" title="alembic.script.ScriptDirectory"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScriptDirectory</span></code></a> object provides programmatic access to the Alembic version files present in the filesystem.</p> <span class="target" id="module-alembic.script"></span><dl class="py class"> <dt class="sig sig-object py" id="alembic.script.Script"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">alembic.script.</span></span><span class="sig-name descname"><span class="pre">Script</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">module</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">module</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rev_id</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#alembic.script.Script" title="Permalink to this definition">¶</a></dt> <dd><p>Represent a single revision file in a <code class="docutils literal notranslate"><span class="pre">versions/</span></code> directory.</p> <p>The <a class="reference internal" href="#alembic.script.Script" title="alembic.script.Script"><code class="xref py py-class docutils literal notranslate"><span class="pre">Script</span></code></a> instance is returned by methods such as <a class="reference internal" href="#alembic.script.ScriptDirectory.iterate_revisions" title="alembic.script.ScriptDirectory.iterate_revisions"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ScriptDirectory.iterate_revisions()</span></code></a>.</p> <dl class="py property"> <dt class="sig sig-object py" id="alembic.script.Script.doc"> <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">doc</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">str</span></em><a class="headerlink" href="#alembic.script.Script.doc" title="Permalink to this definition">¶</a></dt> <dd><p>Return the docstring given in the script.</p> </dd></dl> <dl class="py property"> <dt class="sig sig-object py" id="alembic.script.Script.longdoc"> <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">longdoc</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">str</span></em><a class="headerlink" href="#alembic.script.Script.longdoc" title="Permalink to this definition">¶</a></dt> <dd><p>Return the docstring given in the script.</p> </dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="alembic.script.Script.module"> <span class="sig-name descname"><span class="pre">module</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">ModuleType</span></em><a class="headerlink" href="#alembic.script.Script.module" title="Permalink to this definition">¶</a></dt> <dd><p>The Python module representing the actual script itself.</p> </dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="alembic.script.Script.path"> <span class="sig-name descname"><span class="pre">path</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">str</span></em><a class="headerlink" href="#alembic.script.Script.path" title="Permalink to this definition">¶</a></dt> <dd><p>Filesystem path of the script.</p> </dd></dl> </dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="alembic.script.ScriptDirectory"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">alembic.script.</span></span><span class="sig-name descname"><span class="pre">ScriptDirectory</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">dir</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">file_template</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'%(rev)s_%(slug)s'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">truncate_slug_length</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">40</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">version_locations</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">List</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sourceless</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">output_encoding</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'utf-8'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">timezone</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">hook_config</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">Dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">str</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#alembic.script.ScriptDirectory" title="Permalink to this definition">¶</a></dt> <dd><p>Provides operations upon an Alembic script directory.</p> <p>This object is useful to get information as to current revisions, most notably being able to get at the “head” revision, for schemes that want to test if the current revision in the database is the most recent:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">alembic.script</span> <span class="kn">import</span> <span class="n">ScriptDirectory</span> <span class="kn">from</span> <span class="nn">alembic.config</span> <span class="kn">import</span> <span class="n">Config</span> <span class="n">config</span> <span class="o">=</span> <span class="n">Config</span><span class="p">()</span> <span class="n">config</span><span class="o">.</span><span class="n">set_main_option</span><span class="p">(</span><span class="s2">"script_location"</span><span class="p">,</span> <span class="s2">"myapp:migrations"</span><span class="p">)</span> <span class="n">script</span> <span class="o">=</span> <span class="n">ScriptDirectory</span><span class="o">.</span><span class="n">from_config</span><span class="p">(</span><span class="n">config</span><span class="p">)</span> <span class="n">head_revision</span> <span class="o">=</span> <span class="n">script</span><span class="o">.</span><span class="n">get_current_head</span><span class="p">()</span> </pre></div> </div> <dl class="py method"> <dt class="sig sig-object py" id="alembic.script.ScriptDirectory.as_revision_number"> <span class="sig-name descname"><span class="pre">as_revision_number</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">id_</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#alembic.script.ScriptDirectory.as_revision_number" title="Permalink to this definition">¶</a></dt> <dd><p>Convert a symbolic revision, i.e. ‘head’ or ‘base’, into an actual revision number.</p> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="alembic.script.ScriptDirectory.from_config"> <em class="property"><span class="pre">classmethod</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">from_config</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">config</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="config.html#alembic.config.Config" title="alembic.config.Config"><span class="pre">Config</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><a class="reference internal" href="#alembic.script.ScriptDirectory" title="alembic.script.ScriptDirectory"><span class="pre">ScriptDirectory</span></a></span></span><a class="headerlink" href="#alembic.script.ScriptDirectory.from_config" title="Permalink to this definition">¶</a></dt> <dd><p>Produce a new <a class="reference internal" href="#alembic.script.ScriptDirectory" title="alembic.script.ScriptDirectory"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScriptDirectory</span></code></a> given a <a class="reference internal" href="config.html#alembic.config.Config" title="alembic.config.Config"><code class="xref py py-class docutils literal notranslate"><span class="pre">Config</span></code></a> instance.</p> <p>The <a class="reference internal" href="config.html#alembic.config.Config" title="alembic.config.Config"><code class="xref py py-class docutils literal notranslate"><span class="pre">Config</span></code></a> need only have the <code class="docutils literal notranslate"><span class="pre">script_location</span></code> key present.</p> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="alembic.script.ScriptDirectory.generate_revision"> <span class="sig-name descname"><span class="pre">generate_revision</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">revid</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">message</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">head</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">refresh</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">splice</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">bool</span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">branch_labels</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">version_path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">depends_on</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Sequence</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kw</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="#alembic.script.Script" title="alembic.script.base.Script"><span class="pre">alembic.script.base.Script</span></a><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#alembic.script.ScriptDirectory.generate_revision" title="Permalink to this definition">¶</a></dt> <dd><p>Generate a new revision file.</p> <p>This runs the <code class="docutils literal notranslate"><span class="pre">script.py.mako</span></code> template, given template arguments, and creates a new file.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters</dt> <dd class="field-odd"><ul class="simple"> <li><p><span class="target" id="alembic.script.ScriptDirectory.generate_revision.params.revid"></span><strong>revid</strong><a class="paramlink headerlink reference internal" href="#alembic.script.ScriptDirectory.generate_revision.params.revid">¶</a> – String revision id. Typically this comes from <code class="docutils literal notranslate"><span class="pre">alembic.util.rev_id()</span></code>.</p></li> <li><p><span class="target" id="alembic.script.ScriptDirectory.generate_revision.params.message"></span><strong>message</strong><a class="paramlink headerlink reference internal" href="#alembic.script.ScriptDirectory.generate_revision.params.message">¶</a> – the revision message, the one passed by the -m argument to the <code class="docutils literal notranslate"><span class="pre">revision</span></code> command.</p></li> <li><p><span class="target" id="alembic.script.ScriptDirectory.generate_revision.params.head"></span><strong>head</strong><a class="paramlink headerlink reference internal" href="#alembic.script.ScriptDirectory.generate_revision.params.head">¶</a> – the head revision to generate against. Defaults to the current “head” if no branches are present, else raises an exception.</p></li> <li><p><span class="target" id="alembic.script.ScriptDirectory.generate_revision.params.splice"></span><strong>splice</strong><a class="paramlink headerlink reference internal" href="#alembic.script.ScriptDirectory.generate_revision.params.splice">¶</a> – if True, allow the “head” version to not be an actual head; otherwise, the selected head must be a head (e.g. endpoint) revision.</p></li> <li><p><span class="target" id="alembic.script.ScriptDirectory.generate_revision.params.refresh"></span><strong>refresh</strong><a class="paramlink headerlink reference internal" href="#alembic.script.ScriptDirectory.generate_revision.params.refresh">¶</a> – deprecated.</p></li> </ul> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="alembic.script.ScriptDirectory.get_base"> <span class="sig-name descname"><span class="pre">get_base</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#alembic.script.ScriptDirectory.get_base" title="Permalink to this definition">¶</a></dt> <dd><p>Return the “base” revision as a string.</p> <p>This is the revision number of the script that has a <code class="docutils literal notranslate"><span class="pre">down_revision</span></code> of None.</p> <p>If the script directory has multiple bases, an error is raised; <a class="reference internal" href="#alembic.script.ScriptDirectory.get_bases" title="alembic.script.ScriptDirectory.get_bases"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ScriptDirectory.get_bases()</span></code></a> should be preferred.</p> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="alembic.script.ScriptDirectory.get_bases"> <span class="sig-name descname"><span class="pre">get_bases</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">List</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#alembic.script.ScriptDirectory.get_bases" title="Permalink to this definition">¶</a></dt> <dd><p>return all “base” revisions as strings.</p> <p>This is the revision number of all scripts that have a <code class="docutils literal notranslate"><span class="pre">down_revision</span></code> of None.</p> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="alembic.script.ScriptDirectory.get_current_head"> <span class="sig-name descname"><span class="pre">get_current_head</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#alembic.script.ScriptDirectory.get_current_head" title="Permalink to this definition">¶</a></dt> <dd><p>Return the current head revision.</p> <p>If the script directory has multiple heads due to branching, an error is raised; <a class="reference internal" href="#alembic.script.ScriptDirectory.get_heads" title="alembic.script.ScriptDirectory.get_heads"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ScriptDirectory.get_heads()</span></code></a> should be preferred.</p> <dl class="field-list simple"> <dt class="field-odd">Returns</dt> <dd class="field-odd"><p>a string revision number.</p> </dd> </dl> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="#alembic.script.ScriptDirectory.get_heads" title="alembic.script.ScriptDirectory.get_heads"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ScriptDirectory.get_heads()</span></code></a></p> </div> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="alembic.script.ScriptDirectory.get_heads"> <span class="sig-name descname"><span class="pre">get_heads</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">List</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#alembic.script.ScriptDirectory.get_heads" title="Permalink to this definition">¶</a></dt> <dd><p>Return all “versioned head” revisions as strings.</p> <p>This is normally a list of length one, unless branches are present. The <a class="reference internal" href="#alembic.script.ScriptDirectory.get_current_head" title="alembic.script.ScriptDirectory.get_current_head"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ScriptDirectory.get_current_head()</span></code></a> method can be used normally when a script directory has only one head.</p> <dl class="field-list simple"> <dt class="field-odd">Returns</dt> <dd class="field-odd"><p>a tuple of string revision numbers.</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="alembic.script.ScriptDirectory.get_revision"> <span class="sig-name descname"><span class="pre">get_revision</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">id_</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="#alembic.script.Script" title="alembic.script.base.Script"><span class="pre">alembic.script.base.Script</span></a><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#alembic.script.ScriptDirectory.get_revision" title="Permalink to this definition">¶</a></dt> <dd><p>Return the <a class="reference internal" href="#alembic.script.Script" title="alembic.script.Script"><code class="xref py py-class docutils literal notranslate"><span class="pre">Script</span></code></a> instance with the given rev id.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="#alembic.script.ScriptDirectory.get_revisions" title="alembic.script.ScriptDirectory.get_revisions"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ScriptDirectory.get_revisions()</span></code></a></p> </div> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="alembic.script.ScriptDirectory.get_revisions"> <span class="sig-name descname"><span class="pre">get_revisions</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">id_</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Sequence</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="#alembic.script.Script" title="alembic.script.base.Script"><span class="pre">alembic.script.base.Script</span></a><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#alembic.script.ScriptDirectory.get_revisions" title="Permalink to this definition">¶</a></dt> <dd><p>Return the <a class="reference internal" href="#alembic.script.Script" title="alembic.script.Script"><code class="xref py py-class docutils literal notranslate"><span class="pre">Script</span></code></a> instance with the given rev identifier, symbolic name, or sequence of identifiers.</p> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="alembic.script.ScriptDirectory.iterate_revisions"> <span class="sig-name descname"><span class="pre">iterate_revisions</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">upper</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lower</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kw</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Iterator</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="#alembic.script.Script" title="alembic.script.base.Script"><span class="pre">alembic.script.base.Script</span></a><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#alembic.script.ScriptDirectory.iterate_revisions" title="Permalink to this definition">¶</a></dt> <dd><p>Iterate through script revisions, starting at the given upper revision identifier and ending at the lower.</p> <p>The traversal uses strictly the <cite>down_revision</cite> marker inside each migration script, so it is a requirement that upper >= lower, else you’ll get nothing back.</p> <p>The iterator yields <a class="reference internal" href="#alembic.script.Script" title="alembic.script.Script"><code class="xref py py-class docutils literal notranslate"><span class="pre">Script</span></code></a> objects.</p> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="#alembic.script.revision.RevisionMap.iterate_revisions" title="alembic.script.revision.RevisionMap.iterate_revisions"><code class="xref py py-meth docutils literal notranslate"><span class="pre">RevisionMap.iterate_revisions()</span></code></a></p> </div> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="alembic.script.ScriptDirectory.run_env"> <span class="sig-name descname"><span class="pre">run_env</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#alembic.script.ScriptDirectory.run_env" title="Permalink to this definition">¶</a></dt> <dd><p>Run the script environment.</p> <p>This basically runs the <code class="docutils literal notranslate"><span class="pre">env.py</span></code> script present in the migration environment. It is called exclusively by the command functions in <a class="reference internal" href="commands.html#module-alembic.command" title="alembic.command"><code class="xref py py-mod docutils literal notranslate"><span class="pre">alembic.command</span></code></a>.</p> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="alembic.script.ScriptDirectory.walk_revisions"> <span class="sig-name descname"><span class="pre">walk_revisions</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">base</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'base'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">head</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'heads'</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Iterator</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="#alembic.script.Script" title="alembic.script.base.Script"><span class="pre">alembic.script.base.Script</span></a><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#alembic.script.ScriptDirectory.walk_revisions" title="Permalink to this definition">¶</a></dt> <dd><p>Iterate through all revisions.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters</dt> <dd class="field-odd"><ul class="simple"> <li><p><span class="target" id="alembic.script.ScriptDirectory.walk_revisions.params.base"></span><strong>base</strong><a class="paramlink headerlink reference internal" href="#alembic.script.ScriptDirectory.walk_revisions.params.base">¶</a> – the base revision, or “base” to start from the empty revision.</p></li> <li><p><span class="target" id="alembic.script.ScriptDirectory.walk_revisions.params.head"></span><strong>head</strong><a class="paramlink headerlink reference internal" href="#alembic.script.ScriptDirectory.walk_revisions.params.head">¶</a> – the head revision; defaults to “heads” to indicate all head revisions. May also be “head” to indicate a single head revision.</p></li> </ul> </dd> </dl> </dd></dl> </dd></dl> <section id="revision"> <h2>Revision<a class="headerlink" href="#revision" title="Permalink to this headline">¶</a></h2> <p>The <a class="reference internal" href="#alembic.script.revision.RevisionMap" title="alembic.script.revision.RevisionMap"><code class="xref py py-class docutils literal notranslate"><span class="pre">RevisionMap</span></code></a> object serves as the basis for revision management, used exclusively by <a class="reference internal" href="#alembic.script.ScriptDirectory" title="alembic.script.ScriptDirectory"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScriptDirectory</span></code></a>.</p> <span class="target" id="module-alembic.script.revision"></span><dl class="py exception"> <dt class="sig sig-object py" id="alembic.script.revision.CycleDetected"> <em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">alembic.script.revision.</span></span><span class="sig-name descname"><span class="pre">CycleDetected</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">revisions</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Sequence</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#alembic.script.revision.CycleDetected" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="py exception"> <dt class="sig sig-object py" id="alembic.script.revision.DependencyCycleDetected"> <em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">alembic.script.revision.</span></span><span class="sig-name descname"><span class="pre">DependencyCycleDetected</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">revisions</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Sequence</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#alembic.script.revision.DependencyCycleDetected" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="py exception"> <dt class="sig sig-object py" id="alembic.script.revision.DependencyLoopDetected"> <em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">alembic.script.revision.</span></span><span class="sig-name descname"><span class="pre">DependencyLoopDetected</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">revision</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Sequence</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#alembic.script.revision.DependencyLoopDetected" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="py exception"> <dt class="sig sig-object py" id="alembic.script.revision.LoopDetected"> <em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">alembic.script.revision.</span></span><span class="sig-name descname"><span class="pre">LoopDetected</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">revision</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#alembic.script.revision.LoopDetected" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="py exception"> <dt class="sig sig-object py" id="alembic.script.revision.MultipleHeads"> <em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">alembic.script.revision.</span></span><span class="sig-name descname"><span class="pre">MultipleHeads</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">heads</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Sequence</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">argument</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#alembic.script.revision.MultipleHeads" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="py exception"> <dt class="sig sig-object py" id="alembic.script.revision.RangeNotAncestorError"> <em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">alembic.script.revision.</span></span><span class="sig-name descname"><span class="pre">RangeNotAncestorError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">lower</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">upper</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#alembic.script.revision.RangeNotAncestorError" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="py exception"> <dt class="sig sig-object py" id="alembic.script.revision.ResolutionError"> <em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">alembic.script.revision.</span></span><span class="sig-name descname"><span class="pre">ResolutionError</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">message</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">argument</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#alembic.script.revision.ResolutionError" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="alembic.script.revision.Revision"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">alembic.script.revision.</span></span><span class="sig-name descname"><span class="pre">Revision</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">revision</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">down_revision</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dependencies</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">branch_labels</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#alembic.script.revision.Revision" title="Permalink to this definition">¶</a></dt> <dd><p>Base class for revisioned objects.</p> <p>The <a class="reference internal" href="#alembic.script.revision.Revision" title="alembic.script.revision.Revision"><code class="xref py py-class docutils literal notranslate"><span class="pre">Revision</span></code></a> class is the base of the more public-facing <a class="reference internal" href="#alembic.script.Script" title="alembic.script.Script"><code class="xref py py-class docutils literal notranslate"><span class="pre">Script</span></code></a> object, which represents a migration script. The mechanics of revision management and traversal are encapsulated within <a class="reference internal" href="#alembic.script.revision.Revision" title="alembic.script.revision.Revision"><code class="xref py py-class docutils literal notranslate"><span class="pre">Revision</span></code></a>, while <a class="reference internal" href="#alembic.script.Script" title="alembic.script.Script"><code class="xref py py-class docutils literal notranslate"><span class="pre">Script</span></code></a> applies this logic to Python files in a version directory.</p> <dl class="py attribute"> <dt class="sig sig-object py" id="alembic.script.revision.Revision.branch_labels"> <span class="sig-name descname"><span class="pre">branch_labels</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Set</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#alembic.script.revision.Revision.branch_labels" title="Permalink to this definition">¶</a></dt> <dd><p>Optional string/tuple of symbolic names to apply to this revision’s branch</p> </dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="alembic.script.revision.Revision.dependencies"> <span class="sig-name descname"><span class="pre">dependencies</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Sequence</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#alembic.script.revision.Revision.dependencies" title="Permalink to this definition">¶</a></dt> <dd><p>Additional revisions which this revision is dependent on.</p> <p>From a migration standpoint, these dependencies are added to the down_revision to form the full iteration. However, the separation of down_revision from “dependencies” is to assist in navigating a history that contains many branches, typically a multi-root scenario.</p> </dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="alembic.script.revision.Revision.down_revision"> <span class="sig-name descname"><span class="pre">down_revision</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Sequence</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#alembic.script.revision.Revision.down_revision" title="Permalink to this definition">¶</a></dt> <dd><p>The <code class="docutils literal notranslate"><span class="pre">down_revision</span></code> identifier(s) within the migration script.</p> <p>Note that the total set of “down” revisions is down_revision + dependencies.</p> </dd></dl> <dl class="py property"> <dt class="sig sig-object py" id="alembic.script.revision.Revision.is_base"> <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">is_base</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">bool</span></em><a class="headerlink" href="#alembic.script.revision.Revision.is_base" title="Permalink to this definition">¶</a></dt> <dd><p>Return True if this <a class="reference internal" href="#alembic.script.revision.Revision" title="alembic.script.revision.Revision"><code class="xref py py-class docutils literal notranslate"><span class="pre">Revision</span></code></a> is a ‘base’ revision.</p> </dd></dl> <dl class="py property"> <dt class="sig sig-object py" id="alembic.script.revision.Revision.is_branch_point"> <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">is_branch_point</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">bool</span></em><a class="headerlink" href="#alembic.script.revision.Revision.is_branch_point" title="Permalink to this definition">¶</a></dt> <dd><p>Return True if this <a class="reference internal" href="#alembic.script.Script" title="alembic.script.Script"><code class="xref py py-class docutils literal notranslate"><span class="pre">Script</span></code></a> is a branch point.</p> <p>A branchpoint is defined as a <a class="reference internal" href="#alembic.script.Script" title="alembic.script.Script"><code class="xref py py-class docutils literal notranslate"><span class="pre">Script</span></code></a> which is referred to by more than one succeeding <a class="reference internal" href="#alembic.script.Script" title="alembic.script.Script"><code class="xref py py-class docutils literal notranslate"><span class="pre">Script</span></code></a>, that is more than one <a class="reference internal" href="#alembic.script.Script" title="alembic.script.Script"><code class="xref py py-class docutils literal notranslate"><span class="pre">Script</span></code></a> has a <cite>down_revision</cite> identifier pointing here.</p> </dd></dl> <dl class="py property"> <dt class="sig sig-object py" id="alembic.script.revision.Revision.is_head"> <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">is_head</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">bool</span></em><a class="headerlink" href="#alembic.script.revision.Revision.is_head" title="Permalink to this definition">¶</a></dt> <dd><p>Return True if this <a class="reference internal" href="#alembic.script.revision.Revision" title="alembic.script.revision.Revision"><code class="xref py py-class docutils literal notranslate"><span class="pre">Revision</span></code></a> is a ‘head’ revision.</p> <p>This is determined based on whether any other <a class="reference internal" href="#alembic.script.Script" title="alembic.script.Script"><code class="xref py py-class docutils literal notranslate"><span class="pre">Script</span></code></a> within the <a class="reference internal" href="#alembic.script.ScriptDirectory" title="alembic.script.ScriptDirectory"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScriptDirectory</span></code></a> refers to this <a class="reference internal" href="#alembic.script.Script" title="alembic.script.Script"><code class="xref py py-class docutils literal notranslate"><span class="pre">Script</span></code></a>. Multiple heads can be present.</p> </dd></dl> <dl class="py property"> <dt class="sig sig-object py" id="alembic.script.revision.Revision.is_merge_point"> <em class="property"><span class="pre">property</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">is_merge_point</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">bool</span></em><a class="headerlink" href="#alembic.script.revision.Revision.is_merge_point" title="Permalink to this definition">¶</a></dt> <dd><p>Return True if this <a class="reference internal" href="#alembic.script.Script" title="alembic.script.Script"><code class="xref py py-class docutils literal notranslate"><span class="pre">Script</span></code></a> is a merge point.</p> </dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="alembic.script.revision.Revision.nextrev"> <span class="sig-name descname"><span class="pre">nextrev</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">FrozenSet</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">frozenset({})</span></em><a class="headerlink" href="#alembic.script.revision.Revision.nextrev" title="Permalink to this definition">¶</a></dt> <dd><p>following revisions, based on down_revision only.</p> </dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="alembic.script.revision.Revision.revision"> <span class="sig-name descname"><span class="pre">revision</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">str</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#alembic.script.revision.Revision.revision" title="Permalink to this definition">¶</a></dt> <dd><p>The string revision number.</p> </dd></dl> </dd></dl> <dl class="py exception"> <dt class="sig sig-object py" id="alembic.script.revision.RevisionError"> <em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">alembic.script.revision.</span></span><span class="sig-name descname"><span class="pre">RevisionError</span></span><a class="headerlink" href="#alembic.script.revision.RevisionError" title="Permalink to this definition">¶</a></dt> <dd></dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="alembic.script.revision.RevisionMap"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">alembic.script.revision.</span></span><span class="sig-name descname"><span class="pre">RevisionMap</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">generator</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Callable</span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">[</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Iterable</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="#alembic.script.revision.Revision" title="alembic.script.revision.Revision"><span class="pre">alembic.script.revision.Revision</span></a><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#alembic.script.revision.RevisionMap" title="Permalink to this definition">¶</a></dt> <dd><p>Maintains a map of <a class="reference internal" href="#alembic.script.revision.Revision" title="alembic.script.revision.Revision"><code class="xref py py-class docutils literal notranslate"><span class="pre">Revision</span></code></a> objects.</p> <p><a class="reference internal" href="#alembic.script.revision.RevisionMap" title="alembic.script.revision.RevisionMap"><code class="xref py py-class docutils literal notranslate"><span class="pre">RevisionMap</span></code></a> is used by <a class="reference internal" href="#alembic.script.ScriptDirectory" title="alembic.script.ScriptDirectory"><code class="xref py py-class docutils literal notranslate"><span class="pre">ScriptDirectory</span></code></a> to maintain and traverse the collection of <a class="reference internal" href="#alembic.script.Script" title="alembic.script.Script"><code class="xref py py-class docutils literal notranslate"><span class="pre">Script</span></code></a> objects, which are themselves instances of <a class="reference internal" href="#alembic.script.revision.Revision" title="alembic.script.revision.Revision"><code class="xref py py-class docutils literal notranslate"><span class="pre">Revision</span></code></a>.</p> <p>Construct a new <a class="reference internal" href="#alembic.script.revision.RevisionMap" title="alembic.script.revision.RevisionMap"><code class="xref py py-class docutils literal notranslate"><span class="pre">RevisionMap</span></code></a>.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters</dt> <dd class="field-odd"><p><span class="target" id="alembic.script.revision.RevisionMap.params.generator"></span><strong>generator</strong><a class="paramlink headerlink reference internal" href="#alembic.script.revision.RevisionMap.params.generator">¶</a> – a zero-arg callable that will generate an iterable of <a class="reference internal" href="#alembic.script.revision.Revision" title="alembic.script.revision.Revision"><code class="xref py py-class docutils literal notranslate"><span class="pre">Revision</span></code></a> instances to be used. These are typically <a class="reference internal" href="#alembic.script.Script" title="alembic.script.Script"><code class="xref py py-class docutils literal notranslate"><span class="pre">Script</span></code></a> subclasses within regular Alembic use.</p> </dd> </dl> <dl class="py method"> <dt class="sig sig-object py" id="alembic.script.revision.RevisionMap.add_revision"> <span class="sig-name descname"><span class="pre">add_revision</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">revision</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#alembic.script.revision.Revision" title="alembic.script.revision.Revision"><span class="pre">alembic.script.revision.Revision</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">_replace</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="headerlink" href="#alembic.script.revision.RevisionMap.add_revision" title="Permalink to this definition">¶</a></dt> <dd><p>add a single revision to an existing map.</p> <p>This method is for single-revision use cases, it’s not appropriate for fully populating an entire revision map.</p> </dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="alembic.script.revision.RevisionMap.bases"> <span class="sig-name descname"><span class="pre">bases</span></span><a class="headerlink" href="#alembic.script.revision.RevisionMap.bases" title="Permalink to this definition">¶</a></dt> <dd><p>All “base” revisions as strings.</p> <p>These are revisions that have a <code class="docutils literal notranslate"><span class="pre">down_revision</span></code> of None, or empty tuple.</p> <dl class="field-list simple"> <dt class="field-odd">Returns</dt> <dd class="field-odd"><p>a tuple of string revision numbers.</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="alembic.script.revision.RevisionMap.get_current_head"> <span class="sig-name descname"><span class="pre">get_current_head</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">branch_label</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#alembic.script.revision.RevisionMap.get_current_head" title="Permalink to this definition">¶</a></dt> <dd><p>Return the current head revision.</p> <p>If the script directory has multiple heads due to branching, an error is raised; <a class="reference internal" href="#alembic.script.ScriptDirectory.get_heads" title="alembic.script.ScriptDirectory.get_heads"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ScriptDirectory.get_heads()</span></code></a> should be preferred.</p> <dl class="field-list simple"> <dt class="field-odd">Parameters</dt> <dd class="field-odd"><p><span class="target" id="alembic.script.revision.RevisionMap.get_current_head.params.branch_label"></span><strong>branch_label</strong><a class="paramlink headerlink reference internal" href="#alembic.script.revision.RevisionMap.get_current_head.params.branch_label">¶</a> – optional branch name which will limit the heads considered to those which include that branch_label.</p> </dd> <dt class="field-even">Returns</dt> <dd class="field-even"><p>a string revision number.</p> </dd> </dl> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="#alembic.script.ScriptDirectory.get_heads" title="alembic.script.ScriptDirectory.get_heads"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ScriptDirectory.get_heads()</span></code></a></p> </div> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="alembic.script.revision.RevisionMap.get_revision"> <span class="sig-name descname"><span class="pre">get_revision</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">id_</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="#alembic.script.revision.Revision" title="alembic.script.revision.Revision"><span class="pre">alembic.script.revision.Revision</span></a><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#alembic.script.revision.RevisionMap.get_revision" title="Permalink to this definition">¶</a></dt> <dd><p>Return the <a class="reference internal" href="#alembic.script.revision.Revision" title="alembic.script.revision.Revision"><code class="xref py py-class docutils literal notranslate"><span class="pre">Revision</span></code></a> instance with the given rev id.</p> <p>If a symbolic name such as “head” or “base” is given, resolves the identifier into the current head or base revision. If the symbolic name refers to multiples, <a class="reference internal" href="#alembic.script.revision.MultipleHeads" title="alembic.script.revision.MultipleHeads"><code class="xref py py-class docutils literal notranslate"><span class="pre">MultipleHeads</span></code></a> is raised.</p> <p>Supports partial identifiers, where the given identifier is matched against all identifiers that start with the given characters; if there is exactly one match, that determines the full revision.</p> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="alembic.script.revision.RevisionMap.get_revisions"> <span class="sig-name descname"><span class="pre">get_revisions</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">id_</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Collection</span><span class="p"><span class="pre">[</span></span><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">None</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">_RevisionOrBase</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#alembic.script.revision.RevisionMap.get_revisions" title="Permalink to this definition">¶</a></dt> <dd><p>Return the <a class="reference internal" href="#alembic.script.revision.Revision" title="alembic.script.revision.Revision"><code class="xref py py-class docutils literal notranslate"><span class="pre">Revision</span></code></a> instances with the given rev id or identifiers.</p> <p>May be given a single identifier, a sequence of identifiers, or the special symbols “head” or “base”. The result is a tuple of one or more identifiers, or an empty tuple in the case of “base”.</p> <p>In the cases where ‘head’, ‘heads’ is requested and the revision map is empty, returns an empty tuple.</p> <p>Supports partial identifiers, where the given identifier is matched against all identifiers that start with the given characters; if there is exactly one match, that determines the full revision.</p> </dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="alembic.script.revision.RevisionMap.heads"> <span class="sig-name descname"><span class="pre">heads</span></span><a class="headerlink" href="#alembic.script.revision.RevisionMap.heads" title="Permalink to this definition">¶</a></dt> <dd><p>All “head” revisions as strings.</p> <p>This is normally a tuple of length one, unless unmerged branches are present.</p> <dl class="field-list simple"> <dt class="field-odd">Returns</dt> <dd class="field-odd"><p>a tuple of string revision numbers.</p> </dd> </dl> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="alembic.script.revision.RevisionMap.iterate_revisions"> <span class="sig-name descname"><span class="pre">iterate_revisions</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">upper</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lower</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">Union</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="p"><span class="pre">...</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">implicit_base</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">inclusive</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">assert_relative_length</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">select_for_downgrade</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Iterator</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="#alembic.script.revision.Revision" title="alembic.script.revision.Revision"><span class="pre">alembic.script.revision.Revision</span></a><span class="p"><span class="pre">]</span></span></span></span><a class="headerlink" href="#alembic.script.revision.RevisionMap.iterate_revisions" title="Permalink to this definition">¶</a></dt> <dd><p>Iterate through script revisions, starting at the given upper revision identifier and ending at the lower.</p> <p>The traversal uses strictly the <cite>down_revision</cite> marker inside each migration script, so it is a requirement that upper >= lower, else you’ll get nothing back.</p> <p>The iterator yields <a class="reference internal" href="#alembic.script.revision.Revision" title="alembic.script.revision.Revision"><code class="xref py py-class docutils literal notranslate"><span class="pre">Revision</span></code></a> objects.</p> </dd></dl> </dd></dl> </section> <section id="module-alembic.script.write_hooks"> <span id="write-hooks"></span><h2>Write Hooks<a class="headerlink" href="#module-alembic.script.write_hooks" title="Permalink to this headline">¶</a></h2> <dl class="py function"> <dt class="sig sig-object py" id="alembic.script.write_hooks.register"> <span class="sig-prename descclassname"><span class="pre">alembic.script.write_hooks.</span></span><span class="sig-name descname"><span class="pre">register</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">→</span> <span class="sig-return-typehint"><span class="pre">Callable</span></span></span><a class="headerlink" href="#alembic.script.write_hooks.register" title="Permalink to this definition">¶</a></dt> <dd><p>A function decorator that will register that function as a write hook.</p> <p>See the documentation linked below for an example.</p> <div class="versionadded"> <p><span class="versionmodified added">New in version 1.2.0.</span></p> </div> <div class="admonition seealso"> <p class="admonition-title">See also</p> <p><a class="reference internal" href="../autogenerate.html#post-write-hooks-custom"><span class="std std-ref">Writing Custom Hooks as Python Functions</span></a></p> </div> </dd></dl> </section> </section> <div class="clearer"></div> </div> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> <div> <h3><a href="../index.html">Table of Contents</a></h3> <ul> <li><a class="reference internal" href="#">Script Directory</a><ul> <li><a class="reference internal" href="#revision">Revision</a></li> <li><a class="reference internal" href="#module-alembic.script.write_hooks">Write Hooks</a></li> </ul> </li> </ul> </div> <div id="searchbox" style="display: none" role="search"> <h3 id="searchlabel">Quick search</h3> <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/> <input type="submit" value="Go" /> </form> </div> </div> <script>$('#searchbox').show(0);</script> <div> <h4>Previous topic</h4> <p class="topless"><a href="autogenerate.html" title="previous chapter">Autogeneration</a></p> </div> <div> <h4>Next topic</h4> <p class="topless"><a href="ddl.html" title="next chapter">DDL Internals</a></p> </div> </div> </div> <div class="clearer"></div> </div> <div class="related" role="navigation" aria-label="related navigation"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> <li class="right" > <a href="../py-modindex.html" title="Python Module Index" >modules</a> |</li> <li class="right" > <a href="ddl.html" title="DDL Internals" >next</a> |</li> <li class="right" > <a href="autogenerate.html" title="Autogeneration" >previous</a> |</li> <li class="nav-item nav-item-0"><a href="../index.html">Alembic 1.8.1 documentation</a> »</li> <li class="nav-item nav-item-1"><a href="index.html" >API Details</a> »</li> <li class="nav-item nav-item-this"><a href="">Script Directory</a></li> </ul> </div> <div class="footer" role="contentinfo"> © Copyright 2010-2022, Mike Bayer. Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 4.5.0. </div> </body> </html>