diff options
| author | horus | 2020-06-27 17:32:35 +0200 |
|---|---|---|
| committer | horus | 2020-06-27 17:32:35 +0200 |
| commit | 9a321b60fcb8e38394afb48cd5f1a5d3f93066a0 (patch) | |
| tree | 5d3eaef2c565c1e30cbf80bcfdc8f97757803159 | |
| parent | beac8dc53c1d24293d169097217403c6bc4bbb2f (diff) | |
| download | curious-crawler-9a321b60fcb8e38394afb48cd5f1a5d3f93066a0.tar.gz | |
Bugfix regarding deleting orphaned articles.
| -rw-r--r-- | database.go | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/database.go b/database.go index 20c135b..2852c7c 100644 --- a/database.go +++ b/database.go @@ -242,14 +242,41 @@ func (app *App) wikipediaMergeArticles(id_to_delete int, correct_url string) err func (app *App) deleteOrphanedArticles() error { query := ` - DELETE a FROM + SELECT a.id FROM article AS a LEFT JOIN discussion AS d ON a.id = d.article_id WHERE d.id IS NULL;` - _, err := app.DB.Exec(query) + row := app.DB.QueryRow(query) + + var article_id int + err := row.Scan(&article_id) + + if err != nil { + if err == sql.ErrNoRows { + return nil + } else { + log.Warnf("deleteOrphanedArticles: Executing query failed: %s", err.Error()) + return err + } + } + + query = ` + DELETE FROM article_category WHERE article_id = ? + ` + _, err = app.DB.Exec(query, article_id) + if err != nil { + log.Warnf("deleteOrphanedArticles: Delete from article_category query failed: %s", err.Error()) + return err + } + + query = ` + DELETE FROM article WHERE id = ? + + ` + _, err = app.DB.Exec(query, article_id) if err != nil { - log.Warnf("deleteOrphanedArticles: Executing query failed: %s", err.Error()) + log.Warnf("deleteOrphanedArticles: Delete from article query failed: %s", err.Error()) return err } |
