Not sure why it was added in the first place, a question for @acwhite211.
To reproduce: Revert the 0002 migration on fwri
Operations to perform:
Target specific migration: 0001_initial, from specify
Running migrations:
Rendering model states... DONE
Unapplying specify.0002_geo...Traceback (most recent call last):
File "manage.py", line 25, in <module>
execute_from_command_line(sys.argv)
File "/opt/specify7/ve/lib/python3.8/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
utility.execute()
File "/opt/specify7/ve/lib/python3.8/site-packages/django/core/management/__init__.py", line 413, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/opt/specify7/ve/lib/python3.8/site-packages/django/core/management/base.py", line 354, in run_from_argv
self.execute(*args, **cmd_options)
File "/opt/specify7/ve/lib/python3.8/site-packages/django/core/management/base.py", line 398, in execute
output = self.handle(*args, **options)
File "/opt/specify7/ve/lib/python3.8/site-packages/django/core/management/base.py", line 89, in wrapped
res = handle_func(*args, **kwargs)
File "/opt/specify7/ve/lib/python3.8/site-packages/django/core/management/commands/migrate.py", line 244, in handle
post_migrate_state = executor.migrate(
File "/opt/specify7/ve/lib/python3.8/site-packages/django/db/migrations/executor.py", line 121, in migrate
state = self._migrate_all_backwards(plan, full_plan, fake=fake)
File "/opt/specify7/ve/lib/python3.8/site-packages/django/db/migrations/executor.py", line 196, in _migrate_all_backwards
self.unapply_migration(states[migration], migration, fake=fake)
File "/opt/specify7/ve/lib/python3.8/site-packages/django/db/migrations/executor.py", line 252, in unapply_migration
state = migration.unapply(state, schema_editor)
File "/opt/specify7/ve/lib/python3.8/site-packages/django/db/migrations/migration.py", line 174, in unapply
operation.database_backwards(self.app_label, schema_editor, from_state, to_state)
File "/opt/specify7/ve/lib/python3.8/site-packages/django/db/migrations/operations/special.py", line 196, in database_backwards
self.reverse_code(from_state.apps, schema_editor)
File "/opt/specify7/specifyweb/specify/migrations/0002_geo.py", line 181, in revert_cosolidated_python_django_migration_operations
revert_discipline_for_taxon_treedefs()
File "/opt/specify7/specifyweb/specify/migrations/0002_geo.py", line 163, in revert_discipline_for_taxon_treedefs
treedef.save()
File "/opt/specify7/specifyweb/specify/models.py", line 22, in custom_save
save_auto_timestamp_field_with_override(super(self.__class__, self).save, args, kwargs, self)
File "/opt/specify7/specifyweb/specify/model_timestamp.py", line 28, in save_auto_timestamp_field_with_override
return save_func(*args, **new_kwargs)
File "/opt/specify7/ve/lib/python3.8/site-packages/django/db/models/base.py", line 739, in save
self.save_base(using=using, force_insert=force_insert,
File "/opt/specify7/ve/lib/python3.8/site-packages/django/db/models/base.py", line 763, in save_base
pre_save.send(
File "/opt/specify7/ve/lib/python3.8/site-packages/django/dispatch/dispatcher.py", line 180, in send
return [
File "/opt/specify7/ve/lib/python3.8/site-packages/django/dispatch/dispatcher.py", line 181, in <listcomp>
(receiver, receiver(signal=self, sender=sender, **named))
File "/opt/specify7/specifyweb/businessrules/orm_signal_handler.py", line 39, in handler
rule(sender, instance)
File "/opt/specify7/specifyweb/businessrules/uniqueness_rules.py", line 109, in check_unique
raise get_exception(conflicts, matchable, field_map)
specifyweb.businessrules.exceptions.BusinessRuleException: ('Taxontreedef must have unique name in discipline', {'table': 'Taxontreedef', 'localizationKey': 'childFieldNotUnique', 'fieldName': 'name', 'fieldData': {'name': 'Taxon'}, 'parentField': 'discipline', 'parentData': {'discipline': 'None'}, 'conflicting': [1]})
https://github.com/specify/specify7/blob/38501653e08cbc0ecf63f136e2253f3d4f9d54bc/specifyweb/specify/migrations/0002_geo.py#L160-L163
This is not a reverse of
https://github.com/specify/specify7/blob/38501653e08cbc0ecf63f136e2253f3d4f9d54bc/specifyweb/specify/migrations/0002_geo.py#L151-L158
Causes issues when a treedefname is same.
Not sure why it was added in the first place, a question for @acwhite211.
To reproduce: Revert the 0002 migration on fwri