summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhorus2020-06-27 17:32:35 +0200
committerhorus2020-06-27 17:32:35 +0200
commit9a321b60fcb8e38394afb48cd5f1a5d3f93066a0 (patch)
tree5d3eaef2c565c1e30cbf80bcfdc8f97757803159
parentbeac8dc53c1d24293d169097217403c6bc4bbb2f (diff)
downloadcurious-crawler-9a321b60fcb8e38394afb48cd5f1a5d3f93066a0.tar.gz
Bugfix regarding deleting orphaned articles.
-rw-r--r--database.go33
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
}