11 KiB
11 KiB
0.7.2 (YYYY-MM-DD)
Changes
- support for SQLAlchemy 0.5.x has been dropped
- Python 2.6 is the minimum supported Python version
Documentation
- add
credits <credits>
for contributors - add
glossary <glossary>
- improve
advice on testing production changes <production testing warning>
- improve Sphinx markup
- refine
Database Schema Versioning <versioning-system>
texts, add example for adding/droping columns (#104) - add more developer related information to
development
section - use sphinxcontrib.issuetracker to link to Google Code issue tracker
Features
- improved
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 :py
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 :py
migrate.versioning.api.version_control
can also be unicode - added if main condition for manage.py script
- make :py
migrate.changeset.constraint.ForeignKeyConstraint.autoname
work with SQLAlchemy 0.5 and 0.6 - fixed case sensitivity in setup.py dependencies
- moved :py
migrate.changeset.exceptions
and :pymigrate.versioning.exceptions
to :pymigrate.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 :py
migrate.versioning.shell.main
failed - #108: Fixed issues with firebird support.
0.6 (11.07.2010)
Warning
Backward incompatible changes:
- :py
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):
) - :py
Column.alter <migrate.changeset.schema.ChangesetColumn.alter>
does not accept current_name anymore, it extracts name from the old column.
Features
- added support for
firebird <firebird-d>
- added option to define custom templates through option
--templates_path
and--templates_theme
, read more intutorial section <custom-templates>
- use Python logging for output, can be shut down by passing
--disable_logging
to :pymigrate.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 :py
~migrate.changeset.constraint.UniqueConstraint
/ :py~migrate.changeset.constraint.CheckConstraint
and corresponding create/drop methods - API url parameter can also be an
:py
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 :py
Column.create <migrate.changeset.schema.ChangesetColumn.create>
which issues corresponding UPDATE statements to set defaults after column creation - :py
Column.create <migrate.changeset.schema.ChangesetColumn.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 :py
Column.create <migrate.changeset.schema.ChangesetColumn.create>
are now issued correctly - use SQLAlchemy quoting system to avoid name conflicts (#32)
- complete refactoring of :py
~migrate.changeset.schema.ColumnDelta
(#23) - partial refactoring of :py
migrate.changeset
package - fixed bug when :py
Column.alter <migrate.changeset.schema.ChangesetColumn.alter>
(server_default='string') was not properly set - constraints passed to :py
Column.create <migrate.changeset.schema.ChangesetColumn.create>
are correctly interpreted (ALTER TABLE ADD CONSTRAINT
is issued afterATLER TABLE ADD COLUMN
) - script names don't break with dot in the name
Documentation
dialect support <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
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)