Managing Waffle data from the command line

Aside the Django admin interface, you can use the command line tools to manage all your waffle objects.

Flags

Use manage.py to change the values of your flags:

$ ./manage.py waffle_flag name-of-my-flag --everyone --percent=47

Use --everyone to turn on and --deactivate to turn off the flag. Set a percentage with --percent or -p. Set the flag on for superusers (--superusers), staff (--staff) or authenticated (--authenticated) users. Set the rollout mode on with --rollout or -r.

If the flag doesn’t exist, add --create to create it before setting its values:

$ ./manage.py waffle_flag name-of-my-flag --deactivate --create

To list all the existing flags, use -l:

$ ./manage.py waffle_flag -l
Flags:
name-of-my-flag

Switches

Use manage.py to change the values of your switches:

$ ./manage.py waffle_switch name-of-my-switch off

You can set a switch to on or off. If that switch doesn’t exist, add --create to create it before setting its value:

$ ./manage.py waffle_switch name-of-my-switch on --create

To list all the existing switches, use -l:

$ ./manage.py waffle_switch -l
Switches:
name-of-my-switch on

Samples

Use manage.py to change the values of your samples:

$ ./manage.py waffle_sample name-of-my-sample 100

You can set a sample to any floating value between 0.0 and 100.0. If that sample doesn’t exist, add --create to create it before setting its value:

$ ./manage.py waffle_sample name-of-my-sample 50.0 --create

To list all the existing samples, use -l:

$ ./manage.py waffle_sample -l
Samples:
name-of-my-sample: 50%

Deleting Data

Use manage.py to delete a batch of flags, switches, and/or samples:

$ ./manage.py waffle_delete --switches switch_name_0 switch_name_1 --flags flag_name_0 flag_name_1 --samples sample_name_0 sample_name_1

Pass a list of switch, flag, or sample names to the command as keyword arguments and they will be deleted from the database.