15
0
Files
python-alembic/python-alembic.spec

99 lines
3.3 KiB
RPMSpec
Raw Normal View History

#
# spec file for package python-alembic
#
Accepting request 385578 from home:tbechtold:branches:devel:languages:python - update to 0.8.5: - Fixed bug where the columns rendered in a ``PrimaryKeyConstraint`` in autogenerate would inappropriately render the "key" of the column, not the name. Pull request courtesy Jesse Dhillon. - Repaired batch migration support for "schema" types which generate constraints, in particular the ``Boolean`` datatype which generates a CHECK constraint. Previously, an alter column operation with this type would fail to correctly accommodate for the CHECK constraint on change both from and to this type. In the former case the operation would fail entirely, in the latter, the CHECK constraint would not get generated. Both of these issues are repaired. - Changing a schema type such as ``Boolean`` to a non-schema type would emit a drop constraint operation which emits ``NotImplementedError`` for the MySQL dialect. This drop constraint operation is now skipped when the constraint originates from a schema type. - A major improvement to the hash id generation function, which for some reason used an awkward arithmetic formula against uuid4() that produced values that tended to start with the digits 1-4. Replaced with a simple substring approach which provides an even distribution. Pull request courtesy Antti Haapala. - Added an autogenerate renderer for the :class:`.ExecuteSQLOp` operation object; only renders if given a plain SQL string, otherwise raises NotImplementedError. Can be of help with custom autogenerate sequences that includes straight SQL execution. Pull request courtesy Jacob Magnusson. - Batch mode generates a FOREIGN KEY constraint that is self-referential using the ultimate table name, rather than ``_alembic_batch_temp``. When the table is renamed from ``_alembic_batch_temp`` back to the original name, the FK now points to the right name. This will **not** work if referential integrity is being enforced (eg. SQLite OBS-URL: https://build.opensuse.org/request/show/385578 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-alembic?expand=0&rev=46
2016-04-08 09:28:37 +00:00
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: python-alembic
Version: 0.8.6
Release: 0
Url: http://bitbucket.org/zzzeek/alembic
Summary: A database migration tool for SQLAlchemy
License: MIT
Group: Development/Languages/Python
Source: http://pypi.io/packages/source/a/alembic/alembic-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: python-devel
BuildRequires: python-setuptools
# Test requirements:
BuildRequires: python-Mako
BuildRequires: python-SQLAlchemy >= 0.7.6
BuildRequires: python-argparse
BuildRequires: python-mock
BuildRequires: python-nose >= 0.11
Accepting request 325796 from Cloud:OpenStack:Master - update to 0.8.0: - Added new command alembic edit. This command takes the same arguments as alembic show, however runs the target script file within $EDITOR. Makes use of the python-editor library in order to facilitate the handling of $EDITOR with reasonable default behaviors across platforms. Pull request courtesy Michel Albert. - Added new multiple-capable argument --depends-on to the alembic revision command, allowing depends_on to be established at the command line level rather than having to edit the file after the fact. 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. - The default test runner via “python setup.py test” is now py.test. nose still works via run_tests.py. - The internal system for Alembic operations has been reworked to now build upon an extensible system of operation objects. New operations can be added to the op. namespace, including that they are available in custom autogenerate schemes. - The internal system for autogenerate been reworked to build upon the extensible system of operation objects present in #302. As part of this change, autogenerate now produces a full object graph representing a list of migration scripts to be written as well as operation objects that will render all the Python code within them; a new hook EnvironmentContext.configure.process_revision_directives allows end-user code to fully customize what autogenerate will do, including not just full manipulation of the Python steps to take but also what file or files will be written and where. Additionally, autogenerate is now extensible as far as database objects compared and rendered into scripts; any new operation directive can also be registered into a series of hooks that OBS-URL: https://build.opensuse.org/request/show/325796 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-alembic?expand=0&rev=43
2015-08-25 07:28:20 +00:00
BuildRequires: python-pytest-cov
BuildRequires: python-python-editor >= 0.3
Requires: python-Mako
Requires: python-SQLAlchemy >= 0.7.6
Requires: python-argparse
Accepting request 325796 from Cloud:OpenStack:Master - update to 0.8.0: - Added new command alembic edit. This command takes the same arguments as alembic show, however runs the target script file within $EDITOR. Makes use of the python-editor library in order to facilitate the handling of $EDITOR with reasonable default behaviors across platforms. Pull request courtesy Michel Albert. - Added new multiple-capable argument --depends-on to the alembic revision command, allowing depends_on to be established at the command line level rather than having to edit the file after the fact. 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. - The default test runner via “python setup.py test” is now py.test. nose still works via run_tests.py. - The internal system for Alembic operations has been reworked to now build upon an extensible system of operation objects. New operations can be added to the op. namespace, including that they are available in custom autogenerate schemes. - The internal system for autogenerate been reworked to build upon the extensible system of operation objects present in #302. As part of this change, autogenerate now produces a full object graph representing a list of migration scripts to be written as well as operation objects that will render all the Python code within them; a new hook EnvironmentContext.configure.process_revision_directives allows end-user code to fully customize what autogenerate will do, including not just full manipulation of the Python steps to take but also what file or files will be written and where. Additionally, autogenerate is now extensible as far as database objects compared and rendered into scripts; any new operation directive can also be registered into a series of hooks that OBS-URL: https://build.opensuse.org/request/show/325796 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-alembic?expand=0&rev=43
2015-08-25 07:28:20 +00:00
Requires: python-python-editor >= 0.3
Requires(post): /usr/sbin/update-alternatives
Requires(postun): /usr/sbin/update-alternatives
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
%else
BuildArch: noarch
%endif
%description
Alembic is a new database migrations tool, written by the author
of SQLAlchemy <http://www.sqlalchemy.org>. A migrations tool
offers the following functionality:
* Can emit ALTER statements to a database in order to change
the structure of tables and other constructs
* Provides a system whereby "migration scripts" may be constructed;
each script indicates a particular series of steps that can "upgrade" a
target database to a new version, and optionally a series of steps that can
"downgrade" similarly, doing the same steps in reverse.
* Allows the scripts to execute in some sequential manner.
%prep
%setup -q -n alembic-%{version}
mv docs html && rm -rf html/build
%build
python setup.py build
%install
python setup.py install --prefix=%{_prefix} --root=%{buildroot}
# update-alternatives
mv %{buildroot}%{_bindir}/alembic %{buildroot}%{_bindir}/alembic-%{py_ver}
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
touch %{buildroot}%{_sysconfdir}/alternatives/alembic
ln -sf %{_sysconfdir}/alternatives/alembic %{buildroot}%{_bindir}/alembic
%check
python setup.py test
%post
update-alternatives \
--install %{_bindir}/alembic alembic %{_bindir}/alembic-%{py_ver} 20
%postun
if [ $1 -eq 0 ] ; then
update-alternatives --remove alembic %{_bindir}/alembic-%{py_ver}
fi
%files
%defattr(-,root,root,-)
%doc CHANGES LICENSE README.rst html
%ghost %{_sysconfdir}/alternatives/alembic
%{_bindir}/alembic
%{_bindir}/alembic-%{py_ver}
%{python_sitelib}/*
%changelog