SQLalchemy mi danno il seguente avviso quando uso una colonna numerica con un motore di database SQLite.Come dovrei gestire il decimale in SQLalchemy e SQLite
SAWarning: Dialetto SQLite + pysqlite fa non supporto oggetti decimali nativamente
Sto cercando di capire il modo migliore per avere pkgPrice = Column(Numeric(12,2))
in SQLAlchemy pur utilizzando SQLite.
Questa domanda [1] How to convert Python decimal to SQLite numeric? mostra un modo per utilizzare sqlite3.register_adapter(D, adapt_decimal)
avere SQLite ricevere e restituire decimale, ma memorizzare le stringhe, ma non so come scavare nel nucleo SQLAlchemy per farlo ancora. I decoratori di tipo sembrano l'approccio giusto ma non li sto ancora cercando.
Qualcuno ha una ricetta Decoratore tipo SQLAlchemy che avrà numeri numerici o decimali nel modello SQLAlchemy, ma li memorizzerà come stringhe in SQLite?
Spero non ti dispiaccia se suggerisco un piccolo cambiamento nel tuo codice. :) Invece di limitarsi a restituire un valore in process_result_value io suggerisco di fare se il lato: def process_result_value (auto, il valore, il dialetto): se value = "None":! ritorno D (valore) altro: return None – Tiho
@van, hai provato a eseguire query sulle nuove colonne SqliteNumeric? Il risultato non è corretto in quanto il confronto tra stringhe è completamente diverso dal confronto numerico. Se fai session.query (T) .filter (T.value> 100) vedrai. –
Inoltre, penso che la parte load_dialect_impl non sia necessaria, dato che hai già specificato impl = types.String –