code.gitea.io/gitea@v1.21.7/models/migrations/v1_17/v212.go (about) 1 // Copyright 2022 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package v1_17 //nolint 5 6 import ( 7 "code.gitea.io/gitea/modules/timeutil" 8 9 "xorm.io/xorm" 10 ) 11 12 func AddPackageTables(x *xorm.Engine) error { 13 type Package struct { 14 ID int64 `xorm:"pk autoincr"` 15 OwnerID int64 `xorm:"UNIQUE(s) INDEX NOT NULL"` 16 RepoID int64 `xorm:"INDEX"` 17 Type string `xorm:"UNIQUE(s) INDEX NOT NULL"` 18 Name string `xorm:"NOT NULL"` 19 LowerName string `xorm:"UNIQUE(s) INDEX NOT NULL"` 20 SemverCompatible bool `xorm:"NOT NULL DEFAULT false"` 21 } 22 23 if err := x.Sync(new(Package)); err != nil { 24 return err 25 } 26 27 type PackageVersion struct { 28 ID int64 `xorm:"pk autoincr"` 29 PackageID int64 `xorm:"UNIQUE(s) INDEX NOT NULL"` 30 CreatorID int64 `xorm:"NOT NULL DEFAULT 0"` 31 Version string `xorm:"NOT NULL"` 32 LowerVersion string `xorm:"UNIQUE(s) INDEX NOT NULL"` 33 CreatedUnix timeutil.TimeStamp `xorm:"created INDEX NOT NULL"` 34 IsInternal bool `xorm:"INDEX NOT NULL DEFAULT false"` 35 MetadataJSON string `xorm:"metadata_json TEXT"` 36 DownloadCount int64 `xorm:"NOT NULL DEFAULT 0"` 37 } 38 39 if err := x.Sync(new(PackageVersion)); err != nil { 40 return err 41 } 42 43 type PackageProperty struct { 44 ID int64 `xorm:"pk autoincr"` 45 RefType int64 `xorm:"INDEX NOT NULL"` 46 RefID int64 `xorm:"INDEX NOT NULL"` 47 Name string `xorm:"INDEX NOT NULL"` 48 Value string `xorm:"TEXT NOT NULL"` 49 } 50 51 if err := x.Sync(new(PackageProperty)); err != nil { 52 return err 53 } 54 55 type PackageFile struct { 56 ID int64 `xorm:"pk autoincr"` 57 VersionID int64 `xorm:"UNIQUE(s) INDEX NOT NULL"` 58 BlobID int64 `xorm:"INDEX NOT NULL"` 59 Name string `xorm:"NOT NULL"` 60 LowerName string `xorm:"UNIQUE(s) INDEX NOT NULL"` 61 CompositeKey string `xorm:"UNIQUE(s) INDEX"` 62 IsLead bool `xorm:"NOT NULL DEFAULT false"` 63 CreatedUnix timeutil.TimeStamp `xorm:"created INDEX NOT NULL"` 64 } 65 66 if err := x.Sync(new(PackageFile)); err != nil { 67 return err 68 } 69 70 type PackageBlob struct { 71 ID int64 `xorm:"pk autoincr"` 72 Size int64 `xorm:"NOT NULL DEFAULT 0"` 73 HashMD5 string `xorm:"hash_md5 char(32) UNIQUE(md5) INDEX NOT NULL"` 74 HashSHA1 string `xorm:"hash_sha1 char(40) UNIQUE(sha1) INDEX NOT NULL"` 75 HashSHA256 string `xorm:"hash_sha256 char(64) UNIQUE(sha256) INDEX NOT NULL"` 76 HashSHA512 string `xorm:"hash_sha512 char(128) UNIQUE(sha512) INDEX NOT NULL"` 77 CreatedUnix timeutil.TimeStamp `xorm:"created INDEX NOT NULL"` 78 } 79 80 if err := x.Sync(new(PackageBlob)); err != nil { 81 return err 82 } 83 84 type PackageBlobUpload struct { 85 ID string `xorm:"pk"` 86 BytesReceived int64 `xorm:"NOT NULL DEFAULT 0"` 87 HashStateBytes []byte `xorm:"BLOB"` 88 CreatedUnix timeutil.TimeStamp `xorm:"created NOT NULL"` 89 UpdatedUnix timeutil.TimeStamp `xorm:"updated INDEX NOT NULL"` 90 } 91 92 return x.Sync(new(PackageBlobUpload)) 93 }