Optimize Drafts retrieval

This adds a database index to speed up retrieval of Drafts.

It is untested with SQLite.
This commit is contained in:
Matt Baer 2020-04-09 13:54:26 -04:00
parent e51e58386e
commit 5de4d2086b
2 changed files with 30 additions and 0 deletions

View File

@ -63,6 +63,7 @@ var migrations = []Migration{
New("support slack oauth", oauthSlack), // V4 -> v5
New("support ActivityPub mentions", supportActivityPubMentions), // V5 -> V6
New("support oauth attach", oauthAttach), // V6 -> V7 (v0.12.0)
New("optimize drafts retrieval", optimizeDrafts), // V7 -> V8
}
// CurrentVer returns the current migration version the application is on

29
migrations/v8.go Normal file
View File

@ -0,0 +1,29 @@
/*
* Copyright © 2020 A Bunch Tell LLC.
*
* This file is part of WriteFreely.
*
* WriteFreely is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, included
* in the LICENSE file in this source code package.
*/
package migrations
func optimizeDrafts(db *datastore) error {
t, err := db.Begin()
_, err = t.Exec(`ALTER TABLE posts ADD INDEX(owner_id, id)`)
if err != nil {
t.Rollback()
return err
}
err = t.Commit()
if err != nil {
t.Rollback()
return err
}
return nil
}