<commit_before># 本コミットより以前のシラサギでは、リスト機能で配信されたメッセージなどで不正な eml を出力していた。
# この不正な eml をインポートすると、user_settings が空のメッセージが作成される。
# user_settings が空のメッセージは、誰からも・どこからも表示されないデータとなり無駄である。
# 本マイグレーションは、このような無駄なメッセージを削除する。
class SS::Migration20220510000000
  include SS::Migration::Base

  depends_on "20220304000000"

  def change
    cond = {
      "$or" => [
        { user_settings: { "$exists" => false } },
        { user_settings: [] },
        { user_settings: nil }
      ]
    }
    Gws::Memo::Message.all.where("$and" => [ cond ]).destroy_all
  end<commit_msg>[fixup][gws][memo] unable to import if all of to, cc, bcc are empty (#4448)<commit_after># 本コミットより以前のシラサギでは、リスト機能で配信されたメッセージなどで不正な eml を出力していた。
# この不正な eml をインポートすると、user_settings が空のメッセージが作成される。
# user_settings が空のメッセージは、誰からも・どこからも表示されないデータとなり無駄である。
# 本マイグレーションは、このような無駄なメッセージを削除する。
class SS::Migration20220510000000
  include SS::Migration::Base

  depends_on "20220304000000"

  def change
    cond = {
      "$or" => [
        { user_settings: { "$exists" => false } },
        { user_settings: [] },
        { user_settings: nil }
      ]
    }
    criteria = Gws::Memo::Message.all.where("$and" => [ cond ])
    all_ids = criteria.pluck(:id)
    all_ids.each_slice(1000) do |ids|
      criteria.in(id: ids).destroy_all
    end
  end
{'fraction_non_alphanumeric': 0.12808641975308643, 'fraction_numerical': 0.04938271604938271, 'mean_word_length': 3.8215613382899627, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 2, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6537247', 'n_tokens_mistral': 710, 'n_tokens_neox': 621, 'n_words': 81}