Quelques choses pratiques à savoir lorsqu’on retire la gem paranoia
d’une application Rails.
Lorsqu’on ajoute acts_as_paranoid
à un modèle, la gem ajoute un default_scope
à ce-dernier qui fait en sorte que les records qui ont une valeur dans leur colonne deleted_at
ne sont jamais récupérés par défaut.
Idéalement, avant de retirer la gem des modèles, on devrait effectuer la modification suivante pour vraiment supprimer les records supprimés :
# Models that previously had (or will soon lose) `acts_as_paranoid`
paranoid_models = [User, Project, Behavior]
paranoid_models.each do |model|
Rails.logger.info("Destroy soft-deleted #{model} records")
model.where.not(deleted_at: nil).destroy_all
end
Ensuite, on peut déployer la release qui retire la gem du code. On peut ensuite rouler la modification à nouveau — si un soft-delete a eu lieu entre la première modification et le déploiement.