|
|
|
@ -1,7 +1,6 @@ |
|
|
|
|
package sqlstore |
|
|
|
|
|
|
|
|
|
import ( |
|
|
|
|
"fmt" |
|
|
|
|
"math" |
|
|
|
|
"strings" |
|
|
|
|
|
|
|
|
@ -72,13 +71,12 @@ func DeleteExpiredVersions(cmd *m.DeleteExpiredVersionsCommand) error { |
|
|
|
|
|
|
|
|
|
// Don't clean up if user set versions_to_keep to 2147483647 (MaxInt32)
|
|
|
|
|
if versionsToKeep := setting.DashboardVersionsToKeep; versionsToKeep < math.MaxInt32 { |
|
|
|
|
// Get dashboard ids to clean up
|
|
|
|
|
affectedDashboardsQuery := fmt.Sprintf(`SELECT dashboard_id FROM dashboard_version |
|
|
|
|
GROUP BY dashboard_id HAVING COUNT(dashboard_version.id)>%d`, versionsToKeep) |
|
|
|
|
|
|
|
|
|
err := sess.Table("dashboard_version"). |
|
|
|
|
Select("dashboard_version.id, dashboard_version.version, dashboard_version.dashboard_id"). |
|
|
|
|
Where(fmt.Sprintf("dashboard_id IN (%s)", affectedDashboardsQuery)). |
|
|
|
|
Where(`dashboard_id IN ( |
|
|
|
|
SELECT dashboard_id FROM dashboard_version |
|
|
|
|
GROUP BY dashboard_id HAVING COUNT(dashboard_version.id) > ? |
|
|
|
|
)`, versionsToKeep). |
|
|
|
|
Desc("dashboard_version.dashboard_id", "dashboard_version.version"). |
|
|
|
|
Find(&versions) |
|
|
|
|
|
|
|
|
|