diff --git a/code/tasks/UserFormsColumnCleanTask.php b/code/tasks/UserFormsColumnCleanTask.php
new file mode 100644
index 000000000..b14599d64
--- /dev/null
+++ b/code/tasks/UserFormsColumnCleanTask.php
@@ -0,0 +1,61 @@
+tables as $db) {
+ $obj = new $db();
+ $columns = $obj->database_fields($db);
+ $query = "SHOW COLUMNS FROM $db";
+ $liveColumns = DB::query($query)->column();
+ $backedUp = 0;
+ $query = "SHOW TABLES LIKE 'Backup_$db'";
+ $tableExists = DB::query($query)->value();
+ if ($tableExists != null) {
+ echo "Tasks run already on $db exiting";
+ return;
+ }
+ $backedUp = 0;
+ foreach ($liveColumns as $index => $column) {
+ if ($backedUp == 0) {
+ echo "Backing up $db
";
+ echo "Creating Backup_$db
";
+ // backup table
+ $query = "CREATE TABLE Backup_$db LIKE $db";
+ DB::query($query);
+ echo "Populating Backup_$db
";
+ $query = "INSERT Backup_$db SELECT * FROM $db";
+ DB::query($query);
+ $backedUp = 1;
+ }
+ if (!isset($columns[$column]) && !in_array($column, $this->keepColumns)) {
+ echo "Dropping $column from $db
";
+ $query = "ALTER TABLE $db DROP COLUMN $column";
+ DB::query($query);
+ }
+ }
+ }
+ }
+}
+
+