psqlextra/backend/hstore_required.py
def alter_field(self, model, old_field, new_field, strict=False):
        """Ran when the configuration on a field changed."""

        is_old_field_hstore = isinstance(old_field, HStoreField)
        is_new_field_hstore = isinstance(new_field, HStoreField)

        if not is_old_field_hstore and not is_new_field_hstore:
            return

        old_required = getattr(old_field, 'required', []) or []
        new_required = getattr(new_field, 'required', []) or []

        # handle field renames before moving on
        if str(old_field.column) != str(new_field.column):
            for key in self._iterate_required_keys(old_field):
                self._rename_hstore_required(
                    model._meta.db_table,
                    model._meta.db_table,
                    old_field,
                    new_field,
                    key
                )

        # drop the constraints for keys that have been removed
        for key in old_required:
            if key not in new_required:
                self._drop_hstore_required(
                    model._meta.db_table,
                    old_field,
                    key
                )

        # create new constraints for keys that have been added
        for key in new_required:
            if key not in old_required:
                self._create_hstore_required(
                    model._meta.db_table,
                    new_field,
                    key
                )
def alter_field(self, model, old_field, new_field, strict=False):
        """Ran when the configuration on a field changed."""

        is_old_field_hstore = isinstance(old_field, HStoreField)
        is_new_field_hstore = isinstance(new_field, HStoreField)

        if not is_old_field_hstore and not is_new_field_hstore:
            return

        old_required = getattr(old_field, 'required', []) or []
        new_required = getattr(new_field, 'required', []) or []

        # handle field renames before moving on
        if str(old_field.column) != str(new_field.column):
            for key in self._iterate_required_keys(old_field):
                self._rename_hstore_required(
                    model._meta.db_table,
                    model._meta.db_table,
                    old_field,
                    new_field,
                    key
                )

        # drop the constraints for keys that have been removed
        for key in old_required:
            if key not in new_required:
                self._drop_hstore_required(
                    model._meta.db_table,
                    old_field,
                    key
                )

        # create new constraints for keys that have been added
        for key in new_required:
            if key not in old_required:
                self._create_hstore_required(
                    model._meta.db_table,
                    new_field,
                    key
                )
def alter_field ( self , model , old_field , new_field , strict = False ) : is_old_field_hstore = isinstance ( old_field , HStoreField ) is_new_field_hstore = isinstance ( new_field , HStoreField ) if not is_old_field_hstore and not is_new_field_hstore : return old_required = getattr ( old_field , 'required' , [ ] ) or [ ] new_required = getattr ( new_field , 'required' , [ ] ) or [ ] # handle field renames before moving on if str ( old_field . column ) != str ( new_field . column ) : for key in self . _iterate_required_keys ( old_field ) : self . _rename_hstore_required ( model . _meta . db_table , model . _meta . db_table , old_field , new_field , key ) # drop the constraints for keys that have been removed for key in old_required : if key not in new_required : self . _drop_hstore_required ( model . _meta . db_table , old_field , key ) # create new constraints for keys that have been added for key in new_required : if key not in old_required : self . _create_hstore_required ( model . _meta . db_table , new_field , key )
Ran when the configuration on a field changed.
Ran when the configuration on a field changed .