Description
In our usage of django-waffle when switches are removed they often are left in at least one environment database without any meaningful use.
The cost it self is irrelevant for a DB, but checking for active switches (usually debugging a production issue) get more complex overtime.
I have made this script to clean the switches and executed it on Django shell.
from waffle.models import *
switches = Switch.objects.all()
from subprocess import getoutput
from subprocess import getstatusoutput as cmd
print("name", "is_active", "created", "modified")
for switch in switches:
switch_not_found, _ = cmd("grep -ri {switch.name} *")
if switch_not_found:
print(switch.name, switch.is_active, switch.created, switch.modified)
switch.delete()
I saw there is already a command for deleting data.
My proposal here is to create a command like waffle_remove_unused
with options for switches, flags and samples, and also having a dry-run (just printing what would be deleted).
If that is OK I would be glad to work on a PR for it.
The first thing being changing that grep to a Python implementation. Second is to make this generic to Samples and Flags as well.
Activity