Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Support date without time

Aperta
#78 7 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
sqlite, swift
Ambito
databases

Direzione di ricerca

Start by reproducing the failure with the Todo.swift model and CreateTodo migration using a SQLite database and an ISO8601 date. Trace the SQLite date decoding path from the failing retrieval; done means fetching the todos succeeds and the Date field decodes without the reported error.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug enhancement

Vapor 4 cannot decode dates.

Steps to reproduce
  1. Create an empty project using vapor-beta toolbox and using a SQLite database for testing purposes.

  2. Open Todo.swift file and add a field to store a date

Todo model file looks:

import Fluent
import Vapor

final class Todo: Model, Content {
    static let schema = "todos"
    
    @ID(key: .id)
    var id: UUID?

    @Field(key: "title")
    var title: String
    
    @Field(key: "date")
    var date: Date

    init() { }

    init(id: UUID? = nil, title: String, date: Date) {
        self.id = id
        self.title = title
        self.date = date
    }
}
  1. Configure the field on the migration file.
import Fluent

struct CreateTodo: Migration {
    func prepare(on database: Database) -> EventLoopFuture<Void> {
        return database.schema("todos")
            .id()
            .field("title", .string, .required)
            .field("date", .date, .required)
            .create()
    }

    func revert(on database: Database) -> EventLoopFuture<Void> {
        return database.schema("todos").delete()
    }
}
  1. Run the migrations.

  2. Create a new Todo with ISO8601 date.

  3. Try to get the todos. It fails.

Expected behavior

The list of todos is returned.

Actual behavior

[ ERROR ] invalid field: date type: Date error: Decoding error: Value of type 'Date' required for key ''.

Environment
  • Vapor Framework version: 4.0.0-rc.3.12
  • Fluent Framework version: 4.0.0-rc.1
  • Fluent-kit Framework version: 4.0.0-rc.1.16
  • Fluent-sqlite-driver Framework version: 4.0.0-rc.1.1
  • OS version: macOS 10.15.4
Lingua principale
Swift
Stelle
72
Fork
34
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Issue simili

Altre issue su Swift

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.