Skip to content

Command to remove unused switches/flags #492

Open
@cristianowa

Description

@cristianowa

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions