Utilizziamo la funzione di autoload di sqlalchemy per eseguire il mapping delle colonne per impedire l'hardcoding nel nostro codice.sqlalchemy autoloaded orm persistence
class users(Base):
__tablename__ = 'users'
__table_args__ = {
'autoload': True,
'mysql_engine': 'InnoDB',
'mysql_charset': 'utf8'
}
C'è un modo per serializzare o di cache autocaricate metadati/ORM in modo da non passare attraverso il processo di caricamento automatico ogni volta che abbiamo bisogno di fare riferimento a nostre classi ORM da altri script/funzioni?
Ho guardato il cecking e il pickle nel becher ma non ho trovato una risposta chiara se è possibile o come farlo.
Idealmente ci eseguire lo script di mappatura autload solo quando ci siamo impegnati modifiche alla nostra struttura del database, ma fare riferimento a una non-autoload/persistent/versione memorizzata nella cache del nostro mappatura database da tutti gli altri script/funzioni,
Tutte le idee?
Perché non fai il contrario: definisci il modello completo in SA. Come effetto collaterale, questo fungerà da controllo del codice sorgente per lo schema del database. * Naturalmente, questo funziona solo se l'applicazione SA ha il controllo principale dei database che si sta lavorando con * – van
lo sviluppo del database viene gestito separatamente nel mio caso, significa che l'applicazione non ha il controllo completo. Tuttavia, ho trovato un modo per decantare i metadati quindi devo solo riflettere tramite connessione al database una volta per creare il pickle, il tempo in cui utilizzo i metadati decapitati per riflettere che richiede una frazione del tempo attraverso la connessione db (vedi sotto). – user1572502