Delete soft-deleted entities (#1959)

Avoids potential bugs in which soft-deleted entities are returned from database
queries (soft-deletion is now deprecated), but some records may still exist.

Fixes #1956
This commit is contained in:
Zachary Wasserman 2018-11-20 17:41:55 -08:00 committed by GitHub
parent 545bc6fccb
commit 0b21a3d42c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -0,0 +1,54 @@
package data
import (
"database/sql"
"github.com/pkg/errors"
)
func init() {
MigrationClient.AddMigration(Up20181119180000, Down20181119180000)
}
func Up20181119180000(tx *sql.Tx) error {
sql := `DELETE FROM scheduled_queries WHERE deleted = 1`
if _, err := tx.Exec(sql); err != nil {
return errors.Wrap(err, "delete scheduled queries")
}
sql = `DELETE FROM queries WHERE deleted = 1`
if _, err := tx.Exec(sql); err != nil {
return errors.Wrap(err, "delete queries")
}
sql = `DELETE FROM labels WHERE deleted = 1`
if _, err := tx.Exec(sql); err != nil {
return errors.Wrap(err, "delete labels")
}
sql = `DELETE FROM distributed_query_campaigns WHERE deleted = 1`
if _, err := tx.Exec(sql); err != nil {
return errors.Wrap(err, "delete campaigns")
}
sql = `DELETE FROM hosts WHERE deleted = 1`
if _, err := tx.Exec(sql); err != nil {
return errors.Wrap(err, "delete hosts")
}
sql = `DELETE FROM invites WHERE deleted = 1`
if _, err := tx.Exec(sql); err != nil {
return errors.Wrap(err, "delete invites")
}
sql = `DELETE FROM users WHERE deleted = 1`
if _, err := tx.Exec(sql); err != nil {
return errors.Wrap(err, "delete users")
}
return nil
}
func Down20181119180000(tx *sql.Tx) error {
return nil
}