gitea源码

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