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ů.
 
 

70 řádky
1.9 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 CreateUser: AsyncMigration {
  11. func prepare(on database: Database) async throws {
  12. try await database.schema(User.schema)
  13. .id()
  14. .field("username", .string, .required)
  15. .unique(on: "username")
  16. .field("password_hash", .string, .required)
  17. .field("created_at", .datetime, .required)
  18. .field("updated_at", .datetime, .required)
  19. .create()
  20. }
  21. func revert(on database: Database) async throws {
  22. try await database.schema(User.schema).delete()
  23. }
  24. }
  25. struct UpdateUser1: AsyncMigration{
  26. func prepare(on database: Database) async throws {
  27. try await database.schema(User.schema)
  28. .deleteField("created_at")
  29. .deleteField("updated_at")
  30. .update()
  31. }
  32. func revert(on database: Database) async throws {
  33. try await database.schema(User.schema)
  34. .field("created_at", .datetime, .required)
  35. .field("updated_at", .datetime, .required)
  36. .update()
  37. }
  38. }
  39. struct UpdateUser2_AddTokenfield: AsyncMigration {
  40. func prepare(on database: Database) async throws {
  41. try await database.schema(User.schema)
  42. .field("token", .string)
  43. .update()
  44. }
  45. func revert(on database: Database) async throws {
  46. try await database.schema(User.schema)
  47. .deleteField("token")
  48. .update()
  49. }
  50. }
  51. struct UpdateUser3_RemoveTokenfield: AsyncMigration {
  52. func prepare(on database: Database) async throws {
  53. try await database.schema(User.schema)
  54. .deleteField("token")
  55. .update()
  56. }
  57. func revert(on database: Database) async throws {
  58. try await database.schema(User.schema)
  59. .field("token", .string)
  60. .update()
  61. }
  62. }