commit
a2fd3078be
@ -0,0 +1,37 @@ |
|||||||
|
class CleanupOrphanedJournalData < ActiveRecord::Migration[6.0] |
||||||
|
def up |
||||||
|
cleanup_orphaned_journals('attachable_journals') |
||||||
|
cleanup_orphaned_journals('customizable_journals') |
||||||
|
cleanup_orphaned_journals('attachment_journals') |
||||||
|
cleanup_orphaned_journals('changeset_journals') |
||||||
|
cleanup_orphaned_journals('message_journals') |
||||||
|
cleanup_orphaned_journals('news_journals') |
||||||
|
cleanup_orphaned_journals('wiki_content_journals') |
||||||
|
cleanup_orphaned_journals('work_package_journals') |
||||||
|
end |
||||||
|
|
||||||
|
# No down needed as this only cleans up data that should have been deleted anyway. |
||||||
|
|
||||||
|
private |
||||||
|
|
||||||
|
def cleanup_orphaned_journals(table) |
||||||
|
execute <<~SQL |
||||||
|
DELETE |
||||||
|
FROM |
||||||
|
#{table} |
||||||
|
WHERE |
||||||
|
#{table}.id IN ( |
||||||
|
SELECT |
||||||
|
#{table}.id |
||||||
|
FROM |
||||||
|
#{table} |
||||||
|
LEFT OUTER JOIN |
||||||
|
journals |
||||||
|
ON |
||||||
|
journals.id = #{table}.journal_id |
||||||
|
WHERE |
||||||
|
journals.id IS NULL |
||||||
|
) |
||||||
|
SQL |
||||||
|
end |
||||||
|
end |
Loading…
Reference in new issue