Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix missing coordinate text fields for decimal coordinates #5368

Draft
wants to merge 1 commit into
base: production
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions specifyweb/specify/migrations/0012_coordinate_fields_fix.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Generated by Django 3.2.15 on 2024-11-02 00:46

from django.db import migrations


class Migration(migrations.Migration):

dependencies = [
('specify', '0011_cascading_tree_nodes'),
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: Update this with the last current migration in the specify app before merge

]

operations = [
# There are cases from Specify 6 where Longitude and Latitude are captured as decimal values but
# the accompanying text fields are not populated. In cases where the text fields are not populated,
# it appears the records do not have coordinates. This script will populate the text fields with the
# decimal values where the text fields are empty but the decimal values are not.
migrations.RunSQL(
"""
UPDATE locality
SET Lat1text = Latitude1
WHERE Lat1text IS NULL AND Latitude1 IS NOT NULL;

UPDATE locality
SET Long1text = Longitude1
WHERE Long1text IS NULL AND Longitude1 IS NOT NULL;

UPDATE locality
SET Lat2text = Latitude2
WHERE Lat2text IS NULL AND Latitude2 IS NOT NULL;

UPDATE locality
SET Long2text = Longitude2
WHERE Long2text IS NULL AND Longitude2 IS NOT NULL;
""",
# This SQL statment should not be reversed, but this allows for rollback
reverse_sql=''
)
]
Loading