Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 

52 řádky
1.2 KiB

  1. //
  2. // File.swift
  3. //
  4. //
  5. // Created by Michiel Carman on 9/26/24.
  6. //
  7. import Foundation
  8. import Vapor
  9. import Fluent
  10. struct CreateTokens: Migration {
  11. func prepare(on database: Database) -> EventLoopFuture<Void> {
  12. // 2
  13. database.schema(Token.schema)
  14. // 3
  15. .id()
  16. .field("user_id", .uuid, .references("user", "id"))
  17. .field("value", .string, .required)
  18. .unique(on: "value")
  19. .field("source", .int, .required)
  20. .field("created_at", .datetime, .required)
  21. .field("expires_at", .datetime)
  22. .create()
  23. }
  24. // 5
  25. func revert(on database: Database) -> EventLoopFuture<Void> {
  26. database.schema(Token.schema).delete()
  27. }
  28. }
  29. struct UpdateTokens1: Migration {
  30. func prepare(on database: Database) -> EventLoopFuture<Void> {
  31. // 2
  32. database.schema(Token.schema)
  33. // 3
  34. .deleteField("source")
  35. .deleteField("created_at")
  36. .deleteField("expires_at")
  37. .update()
  38. }
  39. // 5
  40. func revert(on database: Database) -> EventLoopFuture<Void> {
  41. database.schema(Token.schema)
  42. .field("source", .int, .required)
  43. .field("created_at", .datetime, .required)
  44. .field("expires_at", .datetime)
  45. .update()
  46. }
  47. }