summaryrefslogtreecommitdiff
path: root/docs/changelog.rst
blob: a61b6b9247d1280b550f33d2d4ace11c289fe5f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
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
******************

- add :ref:`credits <credits>` for contributors
- add :ref:`glossary <glossary>`
- improve :ref:`advice on testing production changes <production testing
  warning>`
- improve Sphinx markup
- refine :ref:`Database Schema Versioning <versioning-system>` texts, add
  example for adding/droping columns (#104)
- add more developer related information to :ref:`development` section
- use sphinxcontrib.issuetracker to link to Google Code issue tracker

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 :py:data:`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:func:`migrate.versioning.api.version_control` can
  also be unicode
- added if main condition for manage.py script
- make :py:func:`migrate.changeset.constraint.ForeignKeyConstraint.autoname`
  work with SQLAlchemy 0.5 and 0.6
- fixed case sensitivity in setup.py dependencies
- moved :py:mod:`migrate.changeset.exceptions` and
  :py:mod:`migrate.versioning.exceptions` to :py:mod:`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
  :py:func:`migrate.versioning.shell.main` failed 
- #108: Fixed issues with firebird support.

0.6 (11.07.2010)
---------------------------

.. _backwards-06:

.. warning:: **Backward incompatible changes**:

    - :py:func:`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:meth:`Column.alter <migrate.changeset.schema.ChangesetColumn.alter>`
      does not accept `current_name` anymore, it extracts name from the old
      column.

Features
**************

- added support for :ref:`firebird <firebird-d>`
- added option to define custom templates through option ``--templates_path``
  and ``--templates_theme``,
  read more in :ref:`tutorial section <custom-templates>`
- use Python logging for output, can be shut down by passing
  ``--disable_logging`` to :py:func:`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 :py:class:`~migrate.changeset.constraint.UniqueConstraint`/
  :py:class:`~migrate.changeset.constraint.CheckConstraint` and corresponding
  create/drop methods
- API `url` parameter can also be an :py:class:`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:meth:`Column.create
  <migrate.changeset.schema.ChangesetColumn.create>` which issues corresponding
  UPDATE statements to set defaults after column creation
- :py:meth:`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
*****************

- :term:`ORM` methods now accept `connection` parameter commonly used for
  transactions
- `server_defaults` passed to :py:meth:`Column.create
  <migrate.changeset.schema.ChangesetColumn.create>` are now issued correctly
- use SQLAlchemy quoting system to avoid name conflicts (#32)
- complete refactoring of :py:class:`~migrate.changeset.schema.ColumnDelta`
  (#23)
- partial refactoring of :py:mod:`migrate.changeset` package
- fixed bug when :py:meth:`Column.alter
  <migrate.changeset.schema.ChangesetColumn.alter>`\(server_default='string')
  was not properly set
- constraints passed to :py:meth:`Column.create
  <migrate.changeset.schema.ChangesetColumn.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
*********************

- :ref:`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
- :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)