Here you can see the full list of changes between each SQLAlchemy-Continuum release.
- Fixed version next / previous handling
- SQLAlchemy dependency updated to 0.9.3
- Fixed column onupdate to history table reflection (issue #47)
- Fixed MySQL support (issue #36)
- Added SQLite and MySQL to testing matrix
- Added vacuum function
- Validity versioning strategy
- Changeset supports custom transaction column names
- Reify -> Revert
- Fixed revert to support class level column exclusion
- Ability to track property modifications
- New configuration options: track_property_modifications and modified_flag_suffix
- Only autoincremented columns marked as autoincrement=False for history tables. This enables alembic migrations to generate without annoying explicit autoincrement=False args.
- Custom database schema support added
- TSVectorType columns not versioned by default (in order to avoid massive version histories)
- Full MySQL and SQLite support added
- Fixed UnitOfWork changed entities handling (now checks only for versioned attributes not all object attributes)
- Fixed UnitOfWork TransactionMeta object creation (now checks if actual modifications were made)
- Fixed MySQL history table primary key generation (autoincrement=False now forced for transaction_id column)
- Added support for SQLAlchemy-i18n
- Added database independent transaction meta parameter handling (formerly supported postgres only)
- Smarter is_modified handling for UnitOfWork (now understands excluded properties)
- Fixed FlaskVersioningManager schematics when working outside of request context (again)
- Added possibility to use custom UnitOfWork class
- Fixed FlaskVersioningManager schematics when working outside of request context
- Fixed is_auto_assigned_date_column (again)
- Moved some core utility functions to SQLAlchemy-Utils
- Fixed is_auto_assigned_date_column
- Inflection added to requirements
- Removed Versioned base class (adding __versioned__ attribute and calling make_versioned() is sufficient for making declarative class versioned)
- DateTime columns with defaults excluded by default from history classes
- Column inclusion added as option
- Smarter changeset handling
- Improved reify() speed
- Fixed changeset when parent contains more columns than version class.
- Transaction log and transaction changes records only created if actual net changes were made during transaction.
- Removed last references for old revision versioning
- Added is_versioned utility function
- Fixed before operation listeners
- Version tables no longer have revision column
- Parent tables no longer need revision column
- Version tables primary key is now (parent table pks + transaction_id)
- Make versioned join table inherited classes support multiple consecutive flushes per transaction
- Fixed association versioning when using executemany
- Improved transaction log changed_entities schematics
- Added possibility to add lazy values in transaction context meta
- Version tables no longer generated when versioning attribute of model set to False
- Revision column not nullable in version classes
- Fixed relationship building for non-versioned classes
- Parent table primary keys remain not nullable in generated version table
- Added database agnostic versioning (no need for PostgreSQL specific triggers anymore)
- Fixed version object relationships (never worked properly in previous versions)
- New configuration option versioning allows setting the versioning on and off per child class.
- Added column exclusion
- Added improved context managing capabilities for transactions via VersioningManager.tx_context
- Removed Versioned base class, versioned objects only need to have __versioned__ defined.
- Session versioning now part of make_versioned function
- Added meta parameter in TransactionLog
- TransactionChanges model for tracking changed entities in given transaction
- Added Flask extension
- Alembic trigger syncing fixed for drop column and add column
- Alembic trigger syncing fixed
- Added support for multiple updates for same row within single transaction
- History tables have now own revision column
- Not null constraints removed from all reflected columns
- Fixed reify when parent has not null constraints
- Added support for reifying deletion
- Single table inheritance support added
- Generated operation_type column not nullable by default
- Added drop_table trigger synchronization
- Autoincrementation automatically removed from reflected primary keys
- Added identifier quoting for all column names
- Identifier quoting for create_trigger_sql
- Added alembic operations proxy class
- VersioningManager now added in __versioned__ dict of each versioned class
- Creating TransactionLog now checks if it already exists.
- Added operation_type column to version tables.
- Versioned mixin no longer holds lists of pending objects
- Added VersioningManager for more customizable versioning syntax
- Model changesets
- Fixed previous and next accessors
- Updates generate versions only if actual changes occur
- Added sanity check in all_affected_entities
- Added backref relations to TransactionLog
- Added all_affected_entities property to TransactionLog
- Renamed internal attribute __pending__ to __pending_versioned__ in order to avoid variable naming collisions.
- Better checking of model table name in scenarios where model does not have __tablename__ defined.
- Added make_versioned for more robust declaration of versioned mappers
- Added PostgreSQLAdapter class
- Made trigger procedures table specific to allow more fine-grained control.
- Added column order inspection.
- Removed foreign key dependency from version table and transaction table
- Fixed packaging
- Initial support for join table inheritance
- Initial release