0.7.3 (201x-xx-xx)

Changes

Documentation

Features

Fixed Bugs

  • #140: excludeTablesgetDiffOfModelAgainstModel is not passing excludeTables correctly (patch by Jason Michalski)

  • #72: Regression against issue #38, migrate drops engine reference (patch by asuffield@gmail.com)

  • #154: versioning/schema.py imports deprecated sqlalchemy.exceptions (patch by Alex Favaro)

  • fix deprecation warning using MetaData.reflect instead of reflect=True constructor argument

  • fix test failure by removing unsupported length argument for Text column

0.7.2 (2011-11-01)

Changes

  • support for SQLAlchemy 0.5.x has been dropped

  • Python 2.6 is the minimum supported Python version

Documentation

Features

  • improved PEP 8 compliance (#122)

  • optionally number versions with timestamps instead of sequences (partly pulled from Pete Keen)

  • allow descriptions in SQL change script filenames (by Pete Keen)

  • improved model generation

Fixed Bugs

  • #83: api test downgrade/upgrade does not work with sql scripts (pulled from Yuen Ho Wong)

  • #105: passing a unicode string as the migrate repository fails (add regression test)

  • #113: make_update_script_for_model fails with AttributeError: ‘SchemaDiff’ object has no attribute ‘colDiffs’ (patch by Jeremy Cantrell)

  • #118: upgrade and downgrade functions are reversed when using the command “make_update_script_for_model” (patch by Jeremy Cantrell)

  • #121: manage.py should use the “if __name__==’__main__’” trick

  • #123: column creation in make_update_script_for_model and required API change (by Gabriel de Perthuis)

  • #124: compare_model_to_db gets confused by sqlite_sequence (pulled from Dustin J. Mitchell)

  • #125: drop column does not work on persistent sqlite databases (pulled from Benoît Allard)

  • #128: table rename failure with sqlalchemy 0.7.x (patch by Mark McLoughlin)

  • #129: update documentation and help text (pulled from Yuen Ho Wong)

0.7.1 (2011-05-27)

Fixed Bugs

  • docs/_build is excluded from source tarball builds

  • use table.append_column() instead of column._set_parent() in ChangesetColumn.add_to_table()

  • fix source and issue tracking URLs in documentation

0.7 (2011-05-27)

Features

  • compatibility with SQLAlchemy 0.7

  • add migrate.__version__

Fixed bugs

  • fix compatibility issues with SQLAlchemy 0.7

0.6.1 (2011-02-11)

Features

  • implemented column adding when foreign keys are present for sqlite

  • implemented columns adding with unique constraints for sqlite

  • implemented adding unique and foreign key constraints to columns for sqlite

  • remove experimental alter_metadata parameter

Fixed bugs

  • updated tests for Python 2.7

  • repository keyword in migrate.versioning.api.version_control() can also be unicode

  • added if main condition for manage.py script

  • make migrate.changeset.constraint.ForeignKeyConstraint.autoname() work with SQLAlchemy 0.5 and 0.6

  • fixed case sensitivity in setup.py dependencies

  • moved migrate.changeset.exceptions and migrate.versioning.exceptions to migrate.exceptions

  • cleared up test output and improved testing of deprecation warnings.

  • some documentation fixes

  • #107: fixed syntax error in genmodel.py

  • #96: fixed bug with column dropping in sqlite

  • #94: fixed bug that prevented non-unique indexes being created

  • fixed bug with column dropping involving foreign keys

  • fixed bug when dropping columns with unique constraints in sqlite

  • rewrite of the schema diff internals, now supporting column differences in additon to missing columns and tables.

  • fixed bug when passing empty list in migrate.versioning.shell.main() failed

  • #108: Fixed issues with firebird support.

0.6 (11.07.2010)

Warning

Backward incompatible changes:

  • migrate.versioning.api.test() and schema comparison functions now all accept url as first parameter and repository as second.

  • python upgrade/downgrade scripts do not import migrate_engine magically, but recieve engine as the only parameter to function (eg. def upgrade(migrate_engine):)

  • Column.alter does not accept current_name anymore, it extracts name from the old column.

Features

  • added support for firebird

  • added option to define custom templates through option --templates_path and --templates_theme, read more in tutorial section

  • use Python logging for output, can be shut down by passing --disable_logging to migrate.versioning.shell.main()

  • deprecated alter_column comparing of columns. Just use explicit parameter change.

  • added support for SQLAlchemy 0.6.x by Michael Bayer

  • Constraint classes have cascade=True keyword argument to issue DROP CASCADE where supported

  • added UniqueConstraint/ CheckConstraint and corresponding create/drop methods

  • API url parameter can also be an Engine instance (this usage is discouraged though sometimes necessary)

  • code coverage is up to 80% with more than 100 tests

  • alter, create, drop column / rename table / rename index constructs now accept alter_metadata parameter. If True, it will modify Column/Table objects according to changes. Otherwise, everything will be untouched.

  • added populate_default bool argument to Column.create which issues corresponding UPDATE statements to set defaults after column creation

  • Column.create accepts primary_key_name, unique_name and index_name as string value which is used as contraint name when adding a column

Fixed bugs

  • ORM methods now accept connection parameter commonly used for transactions

  • server_defaults passed to Column.create are now issued correctly

  • use SQLAlchemy quoting system to avoid name conflicts (#32)

  • complete refactoring of ColumnDelta (#23)

  • partial refactoring of migrate.changeset package

  • fixed bug when Column.alter(server_default=’string’) was not properly set

  • constraints passed to Column.create are correctly interpreted (ALTER TABLE ADD CONSTRAINT is issued after ATLER TABLE ADD COLUMN)

  • script names don’t break with dot in the name

Documentation

  • dialect support table was added to documentation

  • major update to documentation

0.5.4

  • fixed preview_sql parameter for downgrade/upgrade. Now it prints SQL if the step is SQL script and runs step with mocked engine to only print SQL statements if ORM is used. [Domen Kozar]

  • use entrypoints terminology to specify dotted model names (module.model:User) [Domen Kozar]

  • added engine_dict and engine_arg_* parameters to all api functions (deprecated echo) [Domen Kozar]

  • make –echo parameter a bit more forgivable (better Python API support) [Domen Kozar]

  • apply patch to refactor cmd line parsing for Issue 54 by Domen Kozar

0.5.3

  • apply patch for Issue 29 by Jonathan Ellis

  • fix Issue 52 by removing needless parameters from object.__new__ calls

0.5.2

  • move sphinx and nose dependencies to extras_require and tests_require

  • integrate patch for Issue 36 by Kumar McMillan

  • fix unit tests

  • mark ALTER TABLE ADD COLUMN with FOREIGN KEY as not supported by SQLite

0.5.1.2

  • corrected build

0.5.1.1

  • add documentation in tarball

  • add a MANIFEST.in

0.5.1

  • SA 0.5.x support. SQLAlchemy < 0.5.1 not supported anymore.

  • use nose instead of py.test for testing

  • Added –echo=True option for all commands, which will make the sqlalchemy connection echo SQL statements.

  • Better PostgreSQL support, especially for schemas.

  • modification to the downgrade command to simplify the calling (old way still works just fine)

  • improved support for SQLite

  • add support for check constraints (EXPERIMENTAL)

  • print statements removed from APIs

  • improved sphinx based documentation

  • removal of old commented code

  • PEP 8 clean code

0.4.5

  • work by Christian Simms to compare metadata against databases

  • new repository format

  • a repository format migration tool is in migrate/versioning/migrate_repository.py

  • support for default SQL scripts

  • EXPERIMENTAL support for dumping database to model

0.4.4

  • patch by pwannygoodness for Issue #15

  • fixed unit tests to work with py.test 0.9.1

  • fix for a SQLAlchemy deprecation warning

0.4.3

  • patch by Kevin Dangoor to handle database versions as packages and ignore their __init__.py files in version.py

  • fixed unit tests and Oracle changeset support by Christian Simms

0.4.2

  • package name is sqlalchemy-migrate again to make pypi work

  • make import of sqlalchemy’s SchemaGenerator work regardless of previous imports

0.4.1

  • setuptools patch by Kevin Dangoor

  • re-rename module to migrate

0.4.0

  • SA 0.4.0 compatibility thanks to Christian Simms

  • all unit tests are working now (with sqlalchemy >= 0.3.10)

0.3

  • SA 0.3.10 compatibility

0.2.3

  • Removed lots of SA monkeypatching in Migrate’s internals

  • SA 0.3.3 compatibility

  • Removed logsql (trac issue 75)

  • Updated py.test version from 0.8 to 0.9; added a download link to setup.py

  • Fixed incorrect “function not defined” error (trac issue 88)

  • Fixed SQLite and .sql scripts (trac issue 87)

0.2.2

  • Deprecated driver(engine) in favor of engine.name (trac issue 80)

  • Deprecated logsql (trac issue 75)

  • Comments in .sql scripts don’t make things fail silently now (trac issue 74)

  • Errors while downgrading (and probably other places) are shown on their own line

  • Created mailing list and announcements list, updated documentation accordingly

  • Automated tests now require py.test (trac issue 66)

  • Documentation fix to .sql script commits (trac issue 72)

  • Fixed a pretty major bug involving logengine, dealing with commits/tests (trac issue 64)

  • Fixes to the online docs - default DB versioning table name (trac issue 68)

  • Fixed the engine name in the scripts created by the command ‘migrate script’ (trac issue 69)

  • Added Evan’s email to the online docs

0.2.1

  • Created this changelog

  • Now requires (and is now compatible with) SA 0.3

  • Commits across filesystems now allowed (shutil.move instead of os.rename) (trac issue 62)