summaryrefslogtreecommitdiffstats
path: root/models/models.go
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2019-12-09 03:15:35 +0800
committertechknowlogick <techknowlogick@gitea.io>2019-12-08 14:15:35 -0500
commitbe06dee04ce46de2da222fc9b2be4fc3b68b816d (patch)
tree01dacbca7efd24412c7762b41d34f08afcca3e87 /models/models.go
parentbaf089e5b918fd967503e79022d3429b945359ef (diff)
downloadgitea-be06dee04ce46de2da222fc9b2be4fc3b68b816d.tar.gz
gitea-be06dee04ce46de2da222fc9b2be4fc3b68b816d.zip
Move code indexer related code to a new package (#9191)
* move code indexer related code to a new package * fix lint * fix tests * fix fmt * GetMaxID support interface parameter
Diffstat (limited to 'models/models.go')
-rw-r--r--models/models.go25
1 files changed, 25 insertions, 0 deletions
diff --git a/models/models.go b/models/models.go
index 854cb33b14..8c10e7abfc 100644
--- a/models/models.go
+++ b/models/models.go
@@ -254,3 +254,28 @@ func MaxBatchInsertSize(bean interface{}) int {
func Count(bean interface{}) (int64, error) {
return x.Count(bean)
}
+
+// IsTableNotEmpty returns true if table has at least one record
+func IsTableNotEmpty(tableName string) (bool, error) {
+ return x.Table(tableName).Exist()
+}
+
+// DeleteAllRecords will delete all the records of this table
+func DeleteAllRecords(tableName string) error {
+ _, err := x.Exec(fmt.Sprintf("DELETE FROM %s", tableName))
+ return err
+}
+
+// GetMaxID will return max id of the table
+func GetMaxID(beanOrTableName interface{}) (maxID int64, err error) {
+ _, err = x.Select("MAX(id)").Table(beanOrTableName).Get(&maxID)
+ return
+}
+
+// FindByMaxID filled results as the condition from database
+func FindByMaxID(maxID int64, limit int, results interface{}) error {
+ return x.Where("id <= ?", maxID).
+ OrderBy("id DESC").
+ Limit(limit).
+ Find(results)
+}