Using enums as dictionary keys
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 42/100
Direzione di ricerca
Inizia riproducendo l’esempio con Vapor 4.35.0 e analizza la segnalazione dell’errore di PostgresDataEncoder secondo cui l’array non contiene tutti i valori TEXT. Traccia la codifica del dizionario dal campo MyModel attraverso il client PostgreSQL; il lavoro è completato quando un campo di tipo [MyEnum: Float] può essere migrato e salvato senza l’errore.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
I can't use enums as dictionary keys.
To Reproduce
Example:
enum MyEnum: String, Codable {
case one
}
final class MyModel: Model {
static var schema: String = "tests"
@ID(key: .id)
var id: UUID?
@Field(key: "test")
var test: [MyEnum : Float]
}
struct CreateMigration: Migration {
func prepare(on database: Database) -> EventLoopFuture<Void> {
return database.schema(MyModel.schema)
.id()
.field("test", .dictionary(of: .float), .required)
.create()
}
func revert(on database: Database) -> EventLoopFuture<Void> {
return database.schema(MyModel.schema).delete()
}
}
let test = MyModel()
test.test = [.one: Float(1)]
test.save(on: app.db)
Steps to reproduce the behavior:
- Execute migration
- Execute MyModel creation
- See error "Array does not contain all: TEXT" at PostgresDataEncoder
Expected behavior
Create database schema correctly
Environment
- Vapor Framework version: 4.35.0
- Vapor Toolbox version: 18.3.0
- OS version: macOS Big Sur 11.2.1 (20D74)
- Lingua principale
- Swift
- Stelle
- 226
- Fork
- 72
- Merge medio
- 3g 17h
- PR unite (30g)
- 3
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di vapor/postgres-kit
-
bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
vapor/postgres-kit#281 ·
-
bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
vapor/postgres-kit#254 · 4 commenti ·
-
bug good first issue
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
vapor/postgres-kit#227 ·
-
enhancement
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
vapor/postgres-kit#228 · 3 commenti ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
vapor/postgres-kit#198 · 2 commenti ·
Tutte le issue di vapor/postgres-kit
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
permissionlesstech/bitchat#1743 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 70/100
521xueweihan/HelloGitHub#3816 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 65/100
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
jamesmontemagno/tiny-clips#378 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
图标看起来比其他应用小一圈Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100