[openstreetmap/openstreetmap-website] Copies notes details from first comments to notes table (PR #5667)

Andy Allan notifications at github.com
Sat Feb 15 11:59:55 UTC 2025


@gravitystorm commented on this pull request.

I would also interested in what the next step will be. How do you propose removing the first comments, when they are no longer used? That migration will need to work in an "online" manner, i.e. there needs to be code that runs before the migration, during the migration and after the migration. How will that code know if the first comment has been already deleted for a given note? It can't just be `all_comments.drop(1)` for example, since that won't work after the next migration has completed.

> +      note_ids = notes.pluck(:id)
+
+      sql_query = <<-SQL.squish
+        WITH first_comment AS(
+          SELECT DISTINCT ON (note_id) *
+          FROM note_comments
+          WHERE note_id BETWEEN #{note_ids.min} AND #{note_ids.max}
+          ORDER BY note_id, id
+        )
+        UPDATE notes
+        SET description = first_comment.body,
+            user_id = first_comment.author_id,
+            user_ip = first_comment.author_ip
+        FROM first_comment
+        WHERE first_comment.note_id = notes.id
+          AND first_comment.event = 'opened';

Why is this restricted to only comments with event = 'opened'? That's not the same logic as is currently used for creating note descriptions using comments - it uses `all_comments.first` without any similar restriction.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/openstreetmap/openstreetmap-website/pull/5667#pullrequestreview-2619389133
You are receiving this because you are subscribed to this thread.

Message ID: <openstreetmap/openstreetmap-website/pull/5667/review/2619389133 at github.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/rails-dev/attachments/20250215/70944136/attachment.htm>


More information about the rails-dev mailing list