summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--alembic/autogenerate/api.py8
-rw-r--r--alembic/autogenerate/rewriter.py2
-rw-r--r--alembic/command.py6
-rw-r--r--alembic/config.py10
-rw-r--r--alembic/ddl/postgresql.py4
-rw-r--r--alembic/operations/base.py21
-rw-r--r--alembic/operations/ops.py164
-rw-r--r--alembic/runtime/environment.py51
-rw-r--r--alembic/runtime/migration.py21
-rw-r--r--alembic/script/base.py11
-rw-r--r--docs/build/api/autogenerate.rst12
-rw-r--r--docs/build/api/operations.rst9
-rw-r--r--docs/build/autogenerate.rst31
-rw-r--r--docs/build/batch.rst23
-rw-r--r--docs/build/branches.rst24
-rw-r--r--docs/build/cookbook.rst2
-rw-r--r--docs/build/tutorial.rst20
17 files changed, 4 insertions, 415 deletions
diff --git a/alembic/autogenerate/api.py b/alembic/autogenerate/api.py
index 7411f9b..030bc8b 100644
--- a/alembic/autogenerate/api.py
+++ b/alembic/autogenerate/api.py
@@ -115,8 +115,6 @@ def produce_migrations(context, metadata):
:class:`.MigrationScript` object. For an example of what this looks like,
see the example in :ref:`customizing_revision`.
- .. versionadded:: 0.8.0
-
.. seealso::
:func:`.compare_metadata` - returns more fundamental "diff"
@@ -241,8 +239,6 @@ class AutogenContext(object):
within hooks such as the
:paramref:`.EnvironmentContext.configure.render_item` hook.
- .. versionadded:: 0.8.3
-
.. seealso::
:ref:`autogen_render_types`
@@ -379,8 +375,6 @@ class AutogenContext(object):
for each individual :class:`.MetaData` in the order of the
sequence. It does **not** collate the sorted tables collections.
- .. versionadded:: 0.9.0
-
"""
result = []
for m in util.to_list(self.metadata):
@@ -398,8 +392,6 @@ class AutogenContext(object):
Duplicate table keys are **not** supported; if two :class:`.MetaData`
objects contain the same table key, an exception is raised.
- .. versionadded:: 0.9.0
-
"""
result = {}
for m in util.to_list(self.metadata):
diff --git a/alembic/autogenerate/rewriter.py b/alembic/autogenerate/rewriter.py
index 90a931f..fe8bfef 100644
--- a/alembic/autogenerate/rewriter.py
+++ b/alembic/autogenerate/rewriter.py
@@ -26,8 +26,6 @@ class Rewriter(object):
:ref:`autogen_rewriter` - usage example
- .. versionadded:: 0.8
-
"""
_traverse = util.Dispatcher()
diff --git a/alembic/command.py b/alembic/command.py
index 5138494..6a4a3d0 100644
--- a/alembic/command.py
+++ b/alembic/command.py
@@ -152,8 +152,6 @@ def revision(
the other parameters, this option is only available via programmatic
use of :func:`.command.revision`
- .. versionadded:: 0.9.0
-
"""
script_directory = ScriptDirectory.from_config(config)
@@ -228,8 +226,6 @@ def revision(
def merge(config, revisions, message=None, branch_label=None, rev_id=None):
"""Merge two revisions together. Creates a new migration file.
- .. versionadded:: 0.7.0
-
:param config: a :class:`.Config` instance
:param message: string message to apply to the revision
@@ -375,8 +371,6 @@ def history(config, rev_range=None, verbose=False, indicate_current=False):
:param indicate_current: indicate current revision.
- ..versionadded:: 0.9.9
-
"""
script = ScriptDirectory.from_config(config)
diff --git a/alembic/config.py b/alembic/config.py
index b05b22d..955596d 100644
--- a/alembic/config.py
+++ b/alembic/config.py
@@ -67,8 +67,6 @@ class Config(object):
:param stdout: buffer where the "print" output of commands will be sent.
Defaults to ``sys.stdout``.
- .. versionadded:: 0.4
-
:param config_args: A dictionary of keys and values that will be used
for substitution in the alembic config file. The dictionary as given
is **copied** to a new one, stored locally as the attribute
@@ -77,13 +75,9 @@ class Config(object):
dictionary before the dictionary is passed to ``SafeConfigParser()``
to parse the .ini file.
- .. versionadded:: 0.7.0
-
:param attributes: optional dictionary of arbitrary Python keys/values,
which will be populated into the :attr:`.Config.attributes` dictionary.
- .. versionadded:: 0.7.5
-
.. seealso::
:ref:`connection_sharing`
@@ -116,8 +110,6 @@ class Config(object):
Within an ``env.py`` script this can be accessed via the
:attr:`.EnvironmentContext.config` attribute.
- .. versionadded:: 0.6.0
-
.. seealso::
:meth:`.EnvironmentContext.get_x_argument`
@@ -146,8 +138,6 @@ class Config(object):
a :class:`sqlalchemy.engine.base.Connection` when calling
commands from :mod:`alembic.command` programmatically.
- .. versionadded:: 0.7.5
-
.. seealso::
:ref:`connection_sharing`
diff --git a/alembic/ddl/postgresql.py b/alembic/ddl/postgresql.py
index beb70fa..b8fdd99 100644
--- a/alembic/ddl/postgresql.py
+++ b/alembic/ddl/postgresql.py
@@ -434,8 +434,6 @@ class CreateExcludeConstraintOp(ops.AddConstraintOp):
when issuing DDL for this constraint.
:param schema: Optional schema name to operate within.
- .. versionadded:: 0.9.0
-
"""
op = cls(constraint_name, table_name, elements, **kw)
return operations.invoke(op)
@@ -450,8 +448,6 @@ class CreateExcludeConstraintOp(ops.AddConstraintOp):
.. note:: This method is Postgresql specific, and additionally
requires at least SQLAlchemy 1.0.
- .. versionadded:: 0.9.0
-
.. seealso::
:meth:`.Operations.create_exclude_constraint`
diff --git a/alembic/operations/base.py b/alembic/operations/base.py
index 86b50ca..d914c8d 100644
--- a/alembic/operations/base.py
+++ b/alembic/operations/base.py
@@ -76,8 +76,6 @@ class Operations(util.ModuleClsProxy):
is also available as a public API to facilitate adding custom
operations.
- .. versionadded:: 0.8.0
-
.. seealso::
:ref:`operation_plugins`
@@ -245,10 +243,6 @@ class Operations(util.ModuleClsProxy):
that will act as the structure of the table being copied. If omitted,
table reflection is used to retrieve the structure of the table.
- .. versionadded:: 0.7.6 Fully implemented the
- :paramref:`~.Operations.batch_alter_table.copy_from`
- parameter.
-
.. seealso::
:ref:`batch_offline_mode`
@@ -263,18 +257,12 @@ class Operations(util.ModuleClsProxy):
table that will be reflected, in lieu of passing the whole
:class:`~sqlalchemy.schema.Table` using
:paramref:`~.Operations.batch_alter_table.copy_from`.
-
- .. versionadded:: 0.7.1
-
:param reflect_kwargs: a dictionary of additional keyword arguments
that will be applied to the table structure being copied; this may be
used to pass additional table and reflection options to the table that
will be reflected, in lieu of passing the whole
:class:`~sqlalchemy.schema.Table` using
:paramref:`~.Operations.batch_alter_table.copy_from`.
-
- .. versionadded:: 0.7.1
-
:param table_args: a sequence of additional positional arguments that
will be applied to the new :class:`~sqlalchemy.schema.Table` when
created, in addition to those copied from the source table.
@@ -285,9 +273,6 @@ class Operations(util.ModuleClsProxy):
when created, in addition to those copied from the source table.
This may be used to provide for additional table options that may
not be reflected.
-
- .. versionadded:: 0.7.0
-
:param naming_convention: a naming convention dictionary of the form
described at :ref:`autogen_naming_conventions` which will be applied
to the :class:`~sqlalchemy.schema.MetaData` during the reflection
@@ -299,8 +284,6 @@ class Operations(util.ModuleClsProxy):
:ref:`dropping_sqlite_foreign_keys`
- .. versionadded:: 0.7.1
-
:param partial_reordering: a list of tuples, each suggesting a desired
ordering of two or more columns in the newly created table. Requires
that :paramref:`.batch_alter_table.recreate` is set to ``"always"``.
@@ -364,8 +347,6 @@ class Operations(util.ModuleClsProxy):
"""Given a :class:`.MigrateOperation`, invoke it in terms of
this :class:`.Operations` instance.
- .. versionadded:: 0.8.0
-
"""
fn = self._to_impl.dispatch(
operation, self.migration_context.impl.__dialect__
@@ -410,8 +391,6 @@ class Operations(util.ModuleClsProxy):
was introduced in 0.9.2, the string disambiguation service is new
as of 0.9.4.
- .. versionadded:: 0.6.4
-
"""
if conv:
return conv(name)
diff --git a/alembic/operations/ops.py b/alembic/operations/ops.py
index 96c4490..ffb2f1b 100644
--- a/alembic/operations/ops.py
+++ b/alembic/operations/ops.py
@@ -14,8 +14,6 @@ class MigrateOperation(object):
This system is part of the operation extensibility API.
- .. versionadded:: 0.8.0
-
.. seealso::
:ref:`operation_objects`
@@ -144,15 +142,6 @@ class DropConstraintOp(MigrateOperation):
the SQLAlchemy construct
:class:`~sqlalchemy.sql.elements.quoted_name`.
- .. versionadded:: 0.7.0 'schema' can now accept a
- :class:`~sqlalchemy.sql.elements.quoted_name` construct.
-
- .. versionchanged:: 0.8.0 The following positional argument names
- have been changed:
-
- * name -> constraint_name
- * type -> type_
-
"""
op = cls(constraint_name, table_name, type_=type_, schema=schema)
@@ -170,12 +159,6 @@ class DropConstraintOp(MigrateOperation):
:meth:`.Operations.drop_constraint`
- .. versionchanged:: 0.8.0 The following positional argument names
- have been changed:
-
- * name -> constraint_name
- * type -> type_
-
"""
op = cls(
constraint_name,
@@ -275,15 +258,6 @@ class CreatePrimaryKeyOp(AddConstraintOp):
the SQLAlchemy construct
:class:`~sqlalchemy.sql.elements.quoted_name`.
- .. versionadded:: 0.7.0 'schema' can now accept a
- :class:`~sqlalchemy.sql.elements.quoted_name` construct.
-
- .. versionchanged:: 0.8.0 The following positional argument names
- have been changed:
-
- * name -> constraint_name
- * cols -> columns
-
"""
op = cls(constraint_name, table_name, columns, schema)
return operations.invoke(op)
@@ -414,16 +388,6 @@ class CreateUniqueConstraintOp(AddConstraintOp):
the SQLAlchemy construct
:class:`~sqlalchemy.sql.elements.quoted_name`.
- .. versionadded:: 0.7.0 'schema' can now accept a
- :class:`~sqlalchemy.sql.elements.quoted_name` construct.
-
- .. versionchanged:: 0.8.0 The following positional argument names
- have been changed:
-
- * name -> constraint_name
- * source -> table_name
- * local_cols -> columns
-
"""
op = cls(constraint_name, table_name, columns, schema=schema, **kw)
@@ -443,11 +407,6 @@ class CreateUniqueConstraintOp(AddConstraintOp):
:meth:`.Operations.create_unique_constraint`
- .. versionchanged:: 0.8.0 The following positional argument names
- have been changed:
-
- * name -> constraint_name
-
"""
kw["schema"] = operations.impl.schema
op = cls(constraint_name, operations.impl.table_name, columns, **kw)
@@ -599,13 +558,6 @@ class CreateForeignKeyOp(AddConstraintOp):
:param source_schema: Optional schema name of the source table.
:param referent_schema: Optional schema name of the destination table.
- .. versionchanged:: 0.8.0 The following positional argument names
- have been changed:
-
- * name -> constraint_name
- * source -> source_table
- * referent -> referent_table
-
"""
op = cls(
@@ -658,12 +610,6 @@ class CreateForeignKeyOp(AddConstraintOp):
:meth:`.Operations.create_foreign_key`
- .. versionchanged:: 0.8.0 The following positional argument names
- have been changed:
-
- * name -> constraint_name
- * referent -> referent_table
-
"""
op = cls(
constraint_name,
@@ -784,15 +730,6 @@ class CreateCheckConstraintOp(AddConstraintOp):
the SQLAlchemy construct
:class:`~sqlalchemy.sql.elements.quoted_name`.
- .. versionadded:: 0.7.0 'schema' can now accept a
- :class:`~sqlalchemy.sql.elements.quoted_name` construct.
-
- .. versionchanged:: 0.8.0 The following positional argument names
- have been changed:
-
- * name -> constraint_name
- * source -> table_name
-
"""
op = cls(constraint_name, table_name, condition, schema=schema, **kw)
return operations.invoke(op)
@@ -811,11 +748,6 @@ class CreateCheckConstraintOp(AddConstraintOp):
:meth:`.Operations.create_check_constraint`
- .. versionchanged:: 0.8.0 The following positional argument names
- have been changed:
-
- * name -> constraint_name
-
"""
op = cls(
constraint_name,
@@ -907,12 +839,6 @@ class CreateIndexOp(MigrateOperation):
from sqlalchemy import text
op.create_index('ik_test', 't1', [text('lower(foo)')])
- .. versionadded:: 0.6.7 support for making use of the
- :func:`~sqlalchemy.sql.expression.text` construct in
- conjunction with
- :meth:`.Operations.create_index` in
- order to produce functional expressions within CREATE INDEX.
-
:param index_name: name of the index.
:param table_name: name of the owning table.
:param columns: a list consisting of string column names and/or
@@ -921,10 +847,6 @@ class CreateIndexOp(MigrateOperation):
quoting of the schema outside of the default behavior, use
the SQLAlchemy construct
:class:`~sqlalchemy.sql.elements.quoted_name`.
-
- .. versionadded:: 0.7.0 'schema' can now accept a
- :class:`~sqlalchemy.sql.elements.quoted_name` construct.
-
:param unique: If True, create a unique index.
:param quote:
@@ -942,11 +864,6 @@ class CreateIndexOp(MigrateOperation):
See the documentation regarding an individual dialect at
:ref:`dialect_toplevel` for detail on documented arguments.
- .. versionchanged:: 0.8.0 The following positional argument names
- have been changed:
-
- * name -> index_name
-
"""
op = cls(
index_name, table_name, columns, schema=schema, unique=unique, **kw
@@ -1042,25 +959,12 @@ class DropIndexOp(MigrateOperation):
quoting of the schema outside of the default behavior, use
the SQLAlchemy construct
:class:`~sqlalchemy.sql.elements.quoted_name`.
-
- .. versionadded:: 0.7.0 'schema' can now accept a
- :class:`~sqlalchemy.sql.elements.quoted_name` construct.
-
:param \**kw: Additional keyword arguments not mentioned above are
dialect specific, and passed in the form
``<dialectname>_<argname>``.
See the documentation regarding an individual dialect at
:ref:`dialect_toplevel` for detail on documented arguments.
- .. versionadded:: 0.9.5 Support for dialect-specific keyword
- arguments for DROP INDEX
-
- .. versionchanged:: 0.8.0 The following positional argument names
- have been changed:
-
- * name -> index_name
- * tablename -> table_name
-
"""
op = cls(index_name, table_name=table_name, schema=schema, **kw)
return operations.invoke(op)
@@ -1074,11 +978,6 @@ class DropIndexOp(MigrateOperation):
:meth:`.Operations.drop_index`
- .. versionchanged:: 0.8.0 The following positional argument names
- have been changed:
-
- * name -> index_name
-
"""
op = cls(
@@ -1189,8 +1088,6 @@ class CreateTableOp(MigrateOperation):
]
)
- .. versionadded:: 0.7.0
-
:param table_name: Name of the table
:param \*columns: collection of :class:`~sqlalchemy.schema.Column`
objects within
@@ -1201,23 +1098,12 @@ class CreateTableOp(MigrateOperation):
quoting of the schema outside of the default behavior, use
the SQLAlchemy construct
:class:`~sqlalchemy.sql.elements.quoted_name`.
-
- .. versionadded:: 0.7.0 'schema' can now accept a
- :class:`~sqlalchemy.sql.elements.quoted_name` construct.
:param \**kw: Other keyword arguments are passed to the underlying
:class:`sqlalchemy.schema.Table` object created for the command.
:return: the :class:`~sqlalchemy.schema.Table` object corresponding
to the parameters given.
- .. versionadded:: 0.7.0 - the :class:`~sqlalchemy.schema.Table`
- object is returned.
-
- .. versionchanged:: 0.8.0 The following positional argument names
- have been changed:
-
- * name -> table_name
-
"""
op = cls(table_name, columns, **kw)
return operations.invoke(op)
@@ -1272,18 +1158,9 @@ class DropTableOp(MigrateOperation):
quoting of the schema outside of the default behavior, use
the SQLAlchemy construct
:class:`~sqlalchemy.sql.elements.quoted_name`.
-
- .. versionadded:: 0.7.0 'schema' can now accept a
- :class:`~sqlalchemy.sql.elements.quoted_name` construct.
-
:param \**kw: Other keyword arguments are passed to the underlying
:class:`sqlalchemy.schema.Table` object created for the command.
- .. versionchanged:: 0.8.0 The following positional argument names
- have been changed:
-
- * name -> table_name
-
"""
op = cls(table_name, schema=schema, table_kw=kw)
operations.invoke(op)
@@ -1318,9 +1195,6 @@ class RenameTableOp(AlterTableOp):
the SQLAlchemy construct
:class:`~sqlalchemy.sql.elements.quoted_name`.
- .. versionadded:: 0.7.0 'schema' can now accept a
- :class:`~sqlalchemy.sql.elements.quoted_name` construct.
-
"""
op = cls(old_table_name, new_table_name, schema=schema)
return operations.invoke(op)
@@ -1711,23 +1585,12 @@ class AlterColumnOp(AlterTableOp):
quoting of the schema outside of the default behavior, use
the SQLAlchemy construct
:class:`~sqlalchemy.sql.elements.quoted_name`.
-
- .. versionadded:: 0.7.0 'schema' can now accept a
- :class:`~sqlalchemy.sql.elements.quoted_name` construct.
-
:param postgresql_using: String argument which will indicate a
SQL expression to render within the Postgresql-specific USING clause
within ALTER COLUMN. This string is taken directly as raw SQL which
must explicitly include any necessary quoting or escaping of tokens
within the expression.
- .. versionadded:: 0.8.8
-
- .. versionchanged:: 0.8.0 The following positional argument names
- have been changed:
-
- * name -> new_column_name
-
"""
alt = cls(
@@ -1889,10 +1752,6 @@ class AddColumnOp(AlterTableOp):
the SQLAlchemy construct
:class:`~sqlalchemy.sql.elements.quoted_name`.
- .. versionadded:: 0.7.0 'schema' can now accept a
- :class:`~sqlalchemy.sql.elements.quoted_name` construct.
-
-
"""
op = cls(table_name, column, schema=schema)
@@ -1985,10 +1844,6 @@ class DropColumnOp(AlterTableOp):
quoting of the schema outside of the default behavior, use
the SQLAlchemy construct
:class:`~sqlalchemy.sql.elements.quoted_name`.
-
- .. versionadded:: 0.7.0 'schema' can now accept a
- :class:`~sqlalchemy.sql.elements.quoted_name` construct.
-
:param mssql_drop_check: Optional boolean. When ``True``, on
Microsoft SQL Server only, first
drop the CHECK constraint on the column using a
@@ -2011,8 +1866,6 @@ class DropColumnOp(AlterTableOp):
works if the column has exactly one FK constraint which refers to
it, at the moment.
- .. versionadded:: 0.6.2
-
"""
op = cls(table_name, column_name, schema=schema, **kw)
@@ -2108,12 +1961,6 @@ class BulkInsertOp(MigrateOperation):
still be rendered, rather than attempting to pass the values
as bound parameters.
- .. versionadded:: 0.6.4 :meth:`.Operations.inline_literal` can now
- be used with :meth:`.Operations.bulk_insert`, and the
- :paramref:`~.Operations.bulk_insert.multiinsert` flag has
- been added to assist in this usage when running in "online"
- mode.
-
:param table: a table object which represents the target of the INSERT.
:param rows: a list of dictionaries indicating rows.
@@ -2127,8 +1974,6 @@ class BulkInsertOp(MigrateOperation):
in those cases where non-literal values are present in the
parameter sets.
- .. versionadded:: 0.6.4
-
"""
op = cls(table, rows, multiinsert=multiinsert)
@@ -2330,11 +2175,6 @@ class MigrationScript(MigrateOperation):
and ``.downgrade_ops_list`` list-based attributes. These latter
attributes are always available at the very least as single-element lists.
- .. versionchanged:: 0.8.1 the ``.upgrade_ops`` and ``.downgrade_ops``
- attributes should be accessed via the ``.upgrade_ops_list``
- and ``.downgrade_ops_list`` attributes if multiple autogenerate
- passes proceed on the same :class:`.MigrationScript` object.
-
.. seealso::
:ref:`customizing_revision`
@@ -2423,8 +2263,6 @@ class MigrationScript(MigrateOperation):
attribute when dealing with a revision operation that does
multiple autogenerate passes.
- .. versionadded:: 0.8.1
-
"""
return self._upgrade_ops
@@ -2436,7 +2274,5 @@ class MigrationScript(MigrateOperation):
attribute when dealing with a revision operation that does
multiple autogenerate passes.
- .. versionadded:: 0.8.1
-
"""
return self._downgrade_ops
diff --git a/alembic/runtime/environment.py b/alembic/runtime/environment.py
index ed251b9..ed4b25b 100644
--- a/alembic/runtime/environment.py
+++ b/alembic/runtime/environment.py
@@ -163,8 +163,6 @@ class EnvironmentContext(util.ModuleClsProxy):
This function does not require that the :class:`.MigrationContext`
has been configured.
- .. versionadded:: 0.7.0
-
"""
return self.script.as_revision_number("heads")
@@ -267,8 +265,6 @@ class EnvironmentContext(util.ModuleClsProxy):
This function does not require that the :class:`.MigrationContext`
has been configured.
- .. versionadded:: 0.6.0
-
.. seealso::
:meth:`.EnvironmentContext.get_tag_argument`
@@ -368,9 +364,6 @@ class EnvironmentContext(util.ModuleClsProxy):
:param transaction_per_migration: if True, nest each migration script
in a transaction rather than the full series of migrations to
run.
-
- .. versionadded:: 0.6.5
-
:param output_buffer: a file-like object that will be used
for textual output
when the ``--sql`` option is used to generate SQL scripts.
@@ -394,8 +387,6 @@ class EnvironmentContext(util.ModuleClsProxy):
.. note:: the ``literal_binds`` flag is ignored on SQLAlchemy
versions prior to 0.8 where this feature is not supported.
- .. versionadded:: 0.7.6
-
.. seealso::
:meth:`.Operations.inline_literal`
@@ -420,12 +411,6 @@ class EnvironmentContext(util.ModuleClsProxy):
only takes effect when the table is first created.
Defaults to True; setting to False should not be necessary and is
here for backwards compatibility reasons.
-
- .. versionadded:: 0.8.10 Added the
- :paramref:`.EnvironmentContext.configure.version_table_pk`
- flag and additionally established that the Alembic version table
- has a primary key constraint by default.
-
:param on_version_apply: a callable or collection of callables to be
run for each migration step.
The callables will be run in the order they are given, once for
@@ -441,9 +426,6 @@ class EnvironmentContext(util.ModuleClsProxy):
current heads,
* ``run_args``: the ``**kwargs`` passed to :meth:`.run_migrations`.
- .. versionadded:: 0.9.3
-
-
Parameters specific to the autogenerate feature, when
``alembic revision`` is run with the ``--autogenerate`` feature:
@@ -455,14 +437,6 @@ class EnvironmentContext(util.ModuleClsProxy):
what is locally available on the target
:class:`~sqlalchemy.engine.Connection`
to produce candidate upgrade/downgrade operations.
-
- .. versionchanged:: 0.9.0 the
- :paramref:`.EnvironmentContext.configure.target_metadata`
- parameter may now be passed a sequence of
- :class:`~sqlalchemy.schema.MetaData` objects to support
- autogeneration of multiple :class:`~sqlalchemy.schema.MetaData`
- collections.
-
:param compare_type: Indicates type comparison behavior during
an autogenerate
operation. Defaults to ``False`` which disables type
@@ -612,8 +586,6 @@ class EnvironmentContext(util.ModuleClsProxy):
using the :paramref:`.EnvironmentContext.configure.include_name`
hook.
- .. versionadded:: 0.6.0
-
.. seealso::
:ref:`autogenerate_include_hooks`
@@ -626,8 +598,6 @@ class EnvironmentContext(util.ModuleClsProxy):
within a table will be placed under a ``with batch_alter_table():``
directive, so that batch migrations will take place.
- .. versionadded:: 0.7.0
-
.. seealso::
:ref:`batch_migrations`
@@ -712,15 +682,6 @@ class EnvironmentContext(util.ModuleClsProxy):
in order to future-proof migration files against reorganizations
in modules.
- .. versionchanged:: 0.7.0
- :paramref:`.EnvironmentContext.configure.user_module_prefix`
- no longer defaults to the value of
- :paramref:`.EnvironmentContext.configure.sqlalchemy_module_prefix`
- when left at ``None``; the ``__module__`` attribute is now used.
-
- .. versionadded:: 0.6.3 added
- :paramref:`.EnvironmentContext.configure.user_module_prefix`
-
.. seealso::
:ref:`autogen_module_prefix`
@@ -758,18 +719,6 @@ class EnvironmentContext(util.ModuleClsProxy):
a :class:`.Rewriter` object. This is a helper object that
assists in the production of autogenerate-stream rewriter functions.
-
- .. versionadded:: 0.8.0
-
- .. versionchanged:: 0.8.1 - The
- :paramref:`.EnvironmentContext.configure.process_revision_directives`
- hook can append op directives into :class:`.UpgradeOps` and
- :class:`.DowngradeOps` which will be rendered in Python regardless
- of whether the ``--autogenerate`` option is in use or not;
- the ``revision_environment`` configuration variable should be
- set to "true" in the config to enable this.
-
-
.. seealso::
:ref:`customizing_revision`
diff --git a/alembic/runtime/migration.py b/alembic/runtime/migration.py
index 48bb842..bfd73c8 100644
--- a/alembic/runtime/migration.py
+++ b/alembic/runtime/migration.py
@@ -455,8 +455,6 @@ class MigrationContext(object):
If no version table is present, or if there are no revisions
present, an empty tuple is returned.
- .. versionadded:: 0.7.0
-
"""
if self.as_sql:
start_from_rev = self._start_from_rev
@@ -501,8 +499,6 @@ class MigrationContext(object):
towards that revision (either up or down). If no current branches
include the revision, it is added as a new branch head.
- .. versionadded:: 0.7.0
-
"""
heads = self.get_current_heads()
if not self.as_sql and not heads:
@@ -628,11 +624,9 @@ class MigrationContext(object):
@property
def config(self):
- """Return the :class:`.Config` used by the current environment, if any.
-
- .. versionadded:: 0.6.6
+ """Return the :class:`.Config` used by the current environment,
+ if any."""
- """
if self.environment_context:
return self.environment_context.config
else:
@@ -800,8 +794,6 @@ class MigrationInfo(object):
benefit of the :paramref:`.EnvironmentContext.on_version_apply`
callback hook.
- .. versionadded:: 0.9.3
-
"""
is_upgrade = None
@@ -835,8 +827,6 @@ class MigrationInfo(object):
``alembic stamp`` operation which is moving downwards from multiple
branches down to their common branch point.
- .. versionadded:: 0.9.4
-
"""
down_revision_ids = None
@@ -900,11 +890,8 @@ class MigrationInfo(object):
@property
def up_revisions(self):
- """Get :attr:`~.MigrationInfo.up_revision_ids` as a :class:`.Revision`.
-
- .. versionadded:: 0.9.4
-
- """
+ """Get :attr:`~.MigrationInfo.up_revision_ids` as a
+ :class:`.Revision`."""
return self.revision_map.get_revisions(self.up_revision_ids)
@property
diff --git a/alembic/script/base.py b/alembic/script/base.py
index 363895c..a9b5705 100644
--- a/alembic/script/base.py
+++ b/alembic/script/base.py
@@ -205,10 +205,6 @@ class ScriptDirectory(object):
all head revisions. May also be "head" to indicate a single
head revision.
- .. versionchanged:: 0.7.0 the "head" identifier now refers to
- the head of a non-branched repository only; use "heads" to
- refer to the set of all head branches simultaneously.
-
"""
with self._catch_revision_errors(start=base, end=head):
for rev in self.revision_map.iterate_revisions(
@@ -220,8 +216,6 @@ class ScriptDirectory(object):
"""Return the :class:`.Script` instance with the given rev identifier,
symbolic name, or sequence of identifiers.
- .. versionadded:: 0.7.0
-
"""
with self._catch_revision_errors():
return self.revision_map.get_revisions(id_)
@@ -347,8 +341,6 @@ class ScriptDirectory(object):
This is the revision number of all scripts that
have a ``down_revision`` of None.
- .. versionadded:: 0.7.0
-
"""
return list(self.revision_map.bases)
@@ -556,9 +548,6 @@ class ScriptDirectory(object):
:param head: the head revision to generate against. Defaults
to the current "head" if no branches are present, else raises
an exception.
-
- .. versionadded:: 0.7.0
-
:param splice: if True, allow the "head" version to not be an
actual head; otherwise, the selected head must be a head
(e.g. endpoint) revision.
diff --git a/docs/build/api/autogenerate.rst b/docs/build/api/autogenerate.rst
index 230d42d..9d7214e 100644
--- a/docs/build/api/autogenerate.rst
+++ b/docs/build/api/autogenerate.rst
@@ -48,8 +48,6 @@ which produces a structure consisting of operation directives detailed in
Customizing Revision Generation
==========================================
-.. versionadded:: 0.8.0 - the ``alembic revision`` system is now customizable.
-
The ``alembic revision`` command, also available programmatically
via :func:`.command.revision`, essentially produces a single migration
script after being run. Whether or not the ``--autogenerate`` option
@@ -405,13 +403,6 @@ mutiple times when running autogenerate:
when referring to the collection of :class:`.UpgradeOps` and
:class:`.DowngradeOps` objects.
-.. versionchanged:: 0.8.1 - multiple calls to
- :meth:`.MigrationContext.run_migrations` within an autogenerate operation,
- such as that proposed within the ``multidb`` script template,
- are now accommodated by the new extensible migration system
- introduced in 0.8.0.
-
-
.. _autogen_custom_ops:
Autogenerating Custom Operation Directives
@@ -431,9 +422,6 @@ the ``CreateSequenceOp`` and ``DropSequenceOp`` directives
we created in :ref:`operation_plugins`, which correspond to the
SQLAlchemy :class:`~sqlalchemy.schema.Sequence` construct.
-.. versionadded:: 0.8.0 - custom operations can be added to the
- autogenerate system to support new kinds of database objects.
-
Tracking our Object with the Model
----------------------------------
diff --git a/docs/build/api/operations.rst b/docs/build/api/operations.rst
index e23dc20..85d03be 100644
--- a/docs/build/api/operations.rst
+++ b/docs/build/api/operations.rst
@@ -40,10 +40,6 @@ steps to use this system are to first create a subclass of
class decorator, then build a default "implementation" function which is
established using the :meth:`.Operations.implementation_for` decorator.
-.. versionadded:: 0.8.0 - the :class:`.Operations` class is now an
- open namespace that is extensible via the creation of new
- :class:`.MigrateOperation` subclasses.
-
Below we illustrate a very simple operation ``CreateSequenceOp`` which
will implement a new method ``op.create_sequence()`` for use in
migration scripts::
@@ -143,11 +139,6 @@ within the module level of the ``env.py`` script is sufficient.
:ref:`autogen_custom_ops` - how to add autogenerate support to
custom operations.
-.. versionadded:: 0.8 - the migration operations available via the
- :class:`.Operations` class as well as the ``alembic.op`` namespace
- is now extensible using a plugin system.
-
-
.. _operation_objects:
.. _alembic.operations.ops.toplevel:
diff --git a/docs/build/autogenerate.rst b/docs/build/autogenerate.rst
index 4858f34..2d83f78 100644
--- a/docs/build/autogenerate.rst
+++ b/docs/build/autogenerate.rst
@@ -122,13 +122,8 @@ Autogenerate **will detect**:
* Column additions, removals.
* Change of nullable status on columns.
* Basic changes in indexes and explicitly-named unique constraints
-
-.. versionadded:: 0.6.1 Support for autogenerate of indexes and unique constraints.
-
* Basic changes in foreign key constraints
-.. versionadded:: 0.7.1 Support for autogenerate of foreign key constraints.
-
Autogenerate can **optionally detect**:
* Change of column type. This will occur if you set
@@ -217,13 +212,6 @@ consulted in order during the autogenerate process. Note that each
if two :class:`~sqlalchemy.schema.MetaData` objects contain a table
with the same schema/name combination, an error is raised.
-.. versionchanged:: 0.9.0 the
- :paramref:`.EnvironmentContext.configure.target_metadata`
- parameter may now be passed a sequence of
- :class:`~sqlalchemy.schema.MetaData` objects to support
- autogeneration of multiple :class:`~sqlalchemy.schema.MetaData`
- collections.
-
.. _autogenerate_include_hooks:
Controlling What to be Autogenerated
@@ -481,13 +469,6 @@ use the **value of __module__ for the custom type**::
The imports for the above type again must be made present within the migration,
either manually, or by adding it to ``script.py.mako``.
-.. versionchanged:: 0.7.0
- The default module prefix rendering for a user-defined type now makes use
- of the type's ``__module__`` attribute to retrieve the prefix, rather than
- using the value of
- :paramref:`~.EnvironmentContext.configure.sqlalchemy_module_prefix`.
-
-
The above custom type has a long and cumbersome name based on the use
of ``__module__`` directly, which also implies that lots of imports would
be needed in order to accomodate lots of types. For this reason, it is
@@ -529,8 +510,6 @@ Now, when we inevitably refactor our application to move ``MyCustomType``
somewhere else, we only need modify the ``myapp.migration_types`` module,
instead of searching and replacing all instances within our migration scripts.
-.. versionadded:: 0.6.3 Added :paramref:`.EnvironmentContext.configure.user_module_prefix`.
-
.. _autogen_render_types:
Affecting the Rendering of Types Themselves
@@ -594,13 +573,6 @@ as we encounter the type::
# default rendering for other objects
return False
-.. versionchanged:: 0.8 The ``autogen_context`` data member passed to
- the ``render_item`` callable is now an instance of :class:`.AutogenContext`.
-
-.. versionchanged:: 0.8.3 The "imports" data member of the autogen context
- is restored to the new :class:`.AutogenContext` object as
- :attr:`.AutogenContext.imports`.
-
The finished migration script will include our imports where the
``${imports}`` expression is used, producing output such as::
@@ -718,9 +690,6 @@ first; if it returns ``None``, then the ``compare_against_backend`` method
will be used, if present on the metadata type. If that returns ``None``,
then a basic check for type equivalence is run.
-.. versionadded:: 0.7.6 - added support for the ``compare_against_backend()``
- method.
-
.. versionadded:: 1.4.0 - added column keyword comparisons and the
``type_synonyms`` property.
diff --git a/docs/build/batch.rst b/docs/build/batch.rst
index 7cb7a99..e9582c6 100644
--- a/docs/build/batch.rst
+++ b/docs/build/batch.rst
@@ -3,12 +3,6 @@
Running "Batch" Migrations for SQLite and Other Databases
=========================================================
-.. note:: "Batch mode" for SQLite and other databases is a new and intricate
- feature within the 0.7.0 series of Alembic, and should be
- considered as "beta" for the next several releases.
-
-.. versionadded:: 0.7.0
-
The SQLite database presents a challenge to migration tools
in that it has almost no support for the ALTER statement upon which
relational schema migrations rely upon. The rationale for this stems from
@@ -106,10 +100,6 @@ The reflection process may also be bypassed entirely by sending a
pre-fabricated :class:`~sqlalchemy.schema.Table` object; see
:ref:`batch_offline_mode` for an example.
-.. versionadded:: 0.7.1
- added :paramref:`.Operations.batch_alter_table.reflect_args`
- and :paramref:`.Operations.batch_alter_table.reflect_kwargs` options.
-
.. _sqlite_batch_constraints:
Dealing with Constraints
@@ -168,10 +158,6 @@ as described in :ref:`autogen_naming_conventions`. Usage is as follows::
Note that the naming convention feature requires at least
**SQLAlchemy 0.9.4** for support.
-.. versionadded:: 0.7.1
- added :paramref:`~.Operations.batch_alter_table.naming_convention` to
- :meth:`.Operations.batch_alter_table`.
-
Including unnamed UNIQUE constraints
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -249,11 +235,6 @@ again references the correct table. This operation only works when
referential integrity is disabled, consistent with the same requirement
for referring foreign keys from other tables.
-.. versionchanged:: 0.8.4 Self-referring foreign keys are created with the
- target table name in batch mode, even though this table will temporarily
- not exist when dropped. This requires that the target database is not
- enforcing referential integrity.
-
When SQLite's ``PRAGMA FOREIGN KEYS`` mode is turned on, it does provide
the service that foreign key constraints, including self-referential, will
automatically be modified to point to their table across table renames,
@@ -296,10 +277,6 @@ preferred style of working; however, if one needs to do SQLite-compatible
"move and copy" migrations and need them to generate flat SQL files in
"offline" mode, there's not much alternative.
-.. versionadded:: 0.7.6 Fully implemented the
- :paramref:`~.Operations.batch_alter_table.copy_from`
- parameter.
-
Batch mode with Autogenerate
----------------------------
diff --git a/docs/build/branches.rst b/docs/build/branches.rst
index e69db1b..1964078 100644
--- a/docs/build/branches.rst
+++ b/docs/build/branches.rst
@@ -3,23 +3,6 @@
Working with Branches
=====================
-.. note:: Alembic 0.7.0 features an all-new versioning model that fully
- supports branch points, merge points, and long-lived, labeled branches,
- including independent branches originating from multiple bases.
- A great emphasis has been placed on there being almost no impact on the
- existing Alembic workflow, including that all commands work pretty much
- the same as they did before, the format of migration files doesn't require
- any change (though there are some changes that are recommended),
- and even the structure of the ``alembic_version``
- table does not change at all. However, most alembic commands now offer
- new features which will break out an Alembic environment into
- "branch mode", where things become a lot more intricate. Working in
- "branch mode" should be considered as a "beta" feature, with many new
- paradigms and use cases still to be stress tested in the wild.
- Please tread lightly!
-
-.. versionadded:: 0.7.0
-
A **branch** describes a point in a migration stream when two or more
versions refer to the same parent migration as their anscestor. Branches
occur naturally when two divergent source trees, both containing Alembic
@@ -706,13 +689,6 @@ We'd see inside the file::
We also can of course add or alter this value within the file manually after
it is generated, rather than using the ``--depends-on`` argument.
-.. versionadded:: 0.8 The ``depends_on`` attribute may be set directly
- from the ``alembic revision`` command, rather than editing the file
- directly. ``depends_on`` identifiers may also be specified as
- branch names at the command line or directly within the migration file.
- The values may be specified as partial revision numbers from the command
- line which will be resolved to full revision numbers in the output file.
-
We can see the effect this directive has when we view the history
of the ``networking`` branch in terms of "heads", e.g., all the revisions that
are descendants::
diff --git a/docs/build/cookbook.rst b/docs/build/cookbook.rst
index 611b454..1bfba30 100644
--- a/docs/build/cookbook.rst
+++ b/docs/build/cookbook.rst
@@ -258,8 +258,6 @@ Then in ``env.py``::
connection doesn't actually close the outer connection, which stays
active for continued use.
-.. versionadded:: 0.7.5 Added :attr:`.Config.attributes`.
-
.. _replaceable_objects:
Replaceable Objects
diff --git a/docs/build/tutorial.rst b/docs/build/tutorial.rst
index 23f0157..487eb39 100644
--- a/docs/build/tutorial.rst
+++ b/docs/build/tutorial.rst
@@ -258,13 +258,9 @@ This file contains the following features:
dateutil.tz.gettz(<timezone>)
)
- .. versionadded:: 0.9.2
-
* ``truncate_slug_length`` - defaults to 40, the max number of characters
to include in the "slug" field.
- .. versionadded:: 0.6.1 - added ``truncate_slug_length`` configuration
-
* ``sqlalchemy.url`` - A URL to connect to the database via SQLAlchemy. This
configuration value is only used if the ``env.py`` file calls upon them;
in the "generic" template, the call to
@@ -283,27 +279,18 @@ This file contains the following features:
generating new revision files, as well as when running the ``alembic history``
command.
- .. versionchanged:: 0.9.6 the ``alembic history`` command uses the environment
- unconditionally when ``revision_environment`` is set to true.
-
* ``sourceless`` - when set to 'true', revision files that only exist as .pyc
or .pyo files in the versions directory will be used as versions, allowing
"sourceless" versioning folders. When left at the default of 'false',
only .py files are consumed as version files.
- .. versionadded:: 0.6.4
-
* ``version_locations`` - an optional list of revision file locations, to
allow revisions to exist in multiple directories simultaneously.
See :ref:`multiple_bases` for examples.
- .. versionadded:: 0.7.0
-
* ``output_encoding`` - the encoding to use when Alembic writes the
``script.py.mako`` file into a new migration file. Defaults to ``'utf-8'``.
- .. versionadded:: 0.7.0
-
* ``[loggers]``, ``[handlers]``, ``[formatters]``, ``[logger_*]``, ``[handler_*]``,
``[formatter_*]`` - these sections are all part of Python's standard logging configuration,
the mechanics of which are documented at `Configuration File Format <http://docs.python.org/library/logging.config.html#configuration-file-format>`_.
@@ -498,9 +485,6 @@ to upgrade to revision ``ae1027a6acf`` plus two additional steps::
$ alembic upgrade ae10+2
-.. versionadded:: 0.7.0 Support for relative migrations in terms of a specific
- revision.
-
Getting Information
===================
@@ -562,10 +546,6 @@ View all revisions from 1975 to the head::
$ alembic history -r1975ea:
-.. versionadded:: 0.6.0 ``alembic revision`` now accepts the ``-r`` argument to
- specify specific ranges based on version numbers, symbols, or relative deltas.
-
-
Downgrading
===========