- added python 3.14 support
- added django 6.0 support
- added django 6.1 support
- added postgres 18 support
- added support for the foreign key
ON DELETEoptions at database level in django 6.1 - marked
ADD COLUMN GENERATED STOREDas an unsafe operation that warns or raises, because it rewrites the table - marked the decimal type cast to a numeric without precision as a safe operation
- fixed the introspection of constraints and indexes in
sqlmigrateafter a table rename in django 6.1 - fixed the introspection of constraints and indexes for a
db_tablethat needs quotes, as it found nothing and skipped the explicit constraints drop - fixed the idempotent mode checks, as for a
db_tablethat needs quotes they raised an error or found nothing, and as they answered for a same named object in another schema or of another kind and skipped the statement - updated the documentation with the django 6.0
DROP COLUMNlimit forZERO_DOWNTIME_MIGRATIONS_EXPLICIT_CONSTRAINTS_DROP=False, that cannot drop a referenced column - marked python 3.8 support as deprecated
- marked python 3.9 support as deprecated
- marked python 3.10 support as deprecated
- marked python 3.11 support as deprecated
- marked django 4.2 support as deprecated
- marked django 5.0 support as deprecated
- marked django 5.1 support as deprecated
- marked postgres 14 support as deprecated
- dropped postgres 12 support
- dropped postgres 13 support
- replaced
setup.py,setup.cfgandMANIFEST.inwithpyproject.toml - replaced
setuptoolswithhatchlingand generated the pypi description withhatch-fancy-pypi-readme - replaced
flake8andisortwithruff - replaced
toxanddocker composewith a github actions test matrix - replaced
pipandbuildwithuvin the test environments and the release build
- added django 5.2 support
- parallelize CI to run one job per Python version
- fixed unique constraint creation with the
deferrableparameter - split CI into smaller jobs
- added django 5.1 support
- added python 3.13 support
- added postgres 17 support
- marked postgres 12 support as deprecated
- marked postgres 13 support as deprecated
- dropped django 3.2 support
- dropped django 4.0 support
- dropped django 4.1 support
- dropped python 3.6 support
- dropped python 3.7 support
- dropped
migrate_isnotnull_check_constraintscommand
- changed
ADD COLUMN DEFAULT NULLto a safe operation for code defaults - changed
ADD COLUMN DEFAULT NOT NULLto a safe operation fordb_defaultin django 5.0+ - added the
ZERO_DOWNTIME_MIGRATIONS_KEEP_DEFAULTsetting and changedADD COLUMN DEFAULT NOT NULLwith this setting to a safe operation for django < 5.0 - added the
ZERO_DOWNTIME_MIGRATIONS_EXPLICIT_CONSTRAINTS_DROPsetting and enabled dropping constraints and indexes before dropping a column or table - fixed
sqlmigratein idempotent mode - fixed unique constraint creation with the
includeparameter - fixed idempotent mode tests
- updated unsafe migration links to the documentation
- updated patched code to the latest django version
- updated test image to ubuntu 24.04
- improved README
- added idempotent mode and the
ZERO_DOWNTIME_MIGRATIONS_IDEMPOTENT_SQLsetting - fixed django 3.2 degradation due to the missing
skip_default_on_altermethod - improved README
- updated the release github action
- fixed deferred sql errors
- added django 5.0 support
- added python 3.12 support
- added postgres 16 support
- dropped postgres 11 support
- removed the
ZERO_DOWNTIME_MIGRATIONS_USE_NOT_NULLsetting - marked the
migrate_isnotnull_check_constraintscommand as deprecated
- added django 4.2 support
- marked django 3.2 support as deprecated
- marked django 4.0 support as deprecated
- marked django 4.1 support as deprecated
- marked postgres 11 support as deprecated
- dropped postgres 10 support
- updated the test docker image to ubuntu 22.04
- added support for
serialandinteger,bigserialandbigint, as well assmallserialandsmallint, implementing the same type changes as safe migrations - fixed the
AutoFieldtype change and concurrent insertion issue for django < 4.1 - added sequence dropping and creation timeouts, as they can be used with the
CASCADEkeyword and may affect other tables - added django 4.1 support
- added python 3.11 support
- added postgres 15 support
- marked postgres 10 support as deprecated
- dropped django 2.2 support
- dropped django 3.0 support
- dropped django 3.1 support
- dropped postgres 9.5 support
- dropped postgres 9.6 support
- added github actions checks for pull requests
- fixed an issue where renaming a model while keeping
db_tableraised anALTER_TABLE_RENAMEerror (#26) - added django 3.2 support
- added django 4.0 support
- added python 3.9 support
- added python 3.10 support
- added postgres 14 support
- marked django 2.2 support as deprecated
- marked django 3.0 support as deprecated
- marked django 3.1 support as deprecated
- marked python 3.6 support as deprecated
- marked python 3.7 support as deprecated
- marked postgres 9.5 support as deprecated
- marked postgres 9.6 support as deprecated
- switched to github actions for testing
- added django 3.1 support
- added postgres 13 support
- dropped python 3.5 support
- updated the test environment
- fixed the decimal-to-float migration error
- fixed tests for django 3.0.2 and later
- added django 3.0 support
- added support for concurrent index creation and removal operations
- added support for exclude constraints as an unsafe operation
- dropped postgres 9.4 support
- dropped django 2.0 support
- dropped django 2.1 support
- removed the deprecated
django_zero_downtime_migrations_postgres_backendmodule
- added python 3.8 support
- added support for postgres-specific indexes
- improved test clarity
- fixed regexp escaping warnings in the management command
- fixed style checks
- improved README
- marked python 3.5 support as deprecated
- marked postgres 9.4 support as deprecated
- marked django 2.0 support as deprecated
- marked django 2.1 support as deprecated
- marked the
ZERO_DOWNTIME_MIGRATIONS_USE_NOT_NULLoption as deprecated for postgres 12+ - added a management command for migrating from a
CHECK IS NOT NULLconstraint to a realNOT NULLconstraint - added integration tests for postgres 12, postgres 11 (root), postgres 11 with compatible not null constraints, postgres 11 with standard not null constraints, as well as postgres 10, 9.6, 9.5, 9.4, and postgis databases
- fixed bugs related to the deletion and creation of compatible check not null constraints via
pg_attribute - minimized side effects with deferred sql execution between operations in one migration module
- added safe
NOT NULLconstraint creation for postgres 12 - added safe
NOT NULLconstraint creation for extra permissions forpg_catalog.pg_attributewhen theZERO_DOWNTIME_MIGRATIONS_USE_NOT_NULL=USE_PG_ATTRIBUTE_UPDATE_FOR_SUPERUSERoption is enabled - marked
AddFieldwith thenull=Falseparameter and the compatibleCHECK IS NOT NULLconstraint option as an unsafe operation, ignoring theZERO_DOWNTIME_MIGRATIONS_USE_NOT_NULLvalue in this case - added versioning to the package
- fixed pypi README image links
- improved README
- extracted zero-downtime-schema logic into a mixin to allow using it with other backends
- moved the module from
django_zero_downtime_migrations_postgres_backendtodjango_zero_downtime_migrations.backends.postgres - marked the
django_zero_downtime_migrations_postgres_backendmodule as deprecated - added support for the postgis backend
- improved README
- changed the defaults for
ZERO_DOWNTIME_MIGRATIONS_LOCK_TIMEOUTandZERO_DOWNTIME_MIGRATIONS_STATEMENT_TIMEOUTfrom0mstoNoneto match the default django behavior that respects postgres timeouts - updated the documentation with option defaults
- updated the documentation with best practices for option usage
- fixed the issue where adding a nullable field with a default did not raise an error or warning
- added links to the documentation describing the issue and safe alternative usage for errors and warnings
- updated the documentation with type casting workarounds
- added django 2.2 support with the
Meta.indexesandMeta.constraintsattributes - fixed python deprecation warnings for regular expressions
- removed the unused
TimeoutException - improved README and PYPI description
- added an option to disable
statement_timeoutfor long operations, such as index creation and constraint validation, whenstatement_timeoutis set globally
- added long description content type
- replaced default sql queries with safer alternatives
- added options for
statement_timeoutandlock_timeout - added an option for
NOT NULLconstraint behavior - added an option for restricting unsafe operations