SQLAlchemy

Software screenshot:
SQLAlchemy
Dettagli del software:
Versione: 0.9.8
Data di caricamento: 17 Feb 15
Sviluppatore: Michael Bayer
Licenza: Libero
Popolarità: 25

Rating: 5.0/5 (Total Votes: 1)

SQLAlchemy è un open source, indipendente dalla piattaforma software biblioteca e la connessione scritto nel linguaggio di programmazione Python e progettato da zero di agire come una libreria di astrazione del database, ORM (Object Relational Mapper) e SQL toolkit per Python.
Se & rsquo; re uno sviluppatore Python, SQLAlchemy vi darà la massima flessibilità e la potenza di SQL, fornendo una collezione completa di modelli di persistenza popolare a livello aziendale, che sono stati progettati per access.Features ad alte prestazioni ed efficienti di database in un software glanceThe è estremamente facile da usare, sufficientemente potente per compiti sofisticati e modulare. Con SQLAlchemy si sarà in grado di organizzare in attesa di operazioni CRUD, consente l'uso di espressioni booleane, funzioni, operatori, alias di tabella, le clausole UNION, correlata EXISTS clausole, creare, inserire, eliminare e query di aggiornamento, subquery selezionabili, aggiornamenti correlati, interno e outer join, e parametri legano.
Inoltre, può essere utilizzato per generare i database, e di analizzarli, di sostegno per gli oggetti e collezioni di carico relative, il supporto per la creazione di la persistenza trasparente di oggetti basati su modelli, il supporto per la manipolazione e la costruzione di modelli di dominio, così come il supporto per la sincronizzazione tutte le modifiche con la transazione corrente automaticamente.
Tra le altre caratteristiche, possiamo citare un sistema di interrogazione relazionale-oriented che & rsquo; s in grado di esporre tutti SQL & rsquo; s funzionalità, tra cui la correlazione, si unisce e subquery, uno strato di interazione DBAPI, un sistema costruttivo SQL centrale, una completa, astrazione del database standalone livello, il supporto per Extensible Metadata schema SQL, il linguaggio di espressione, il pool di connessioni, tipi personalizzati e tipo coercion.Supports una vasta gamma di databasesThe programma include i dialetti per una vasta gamma di server e motori di database, tra cui MySQL, PostgreSQL, Firebird, Oracle, Microsoft SQL Server, SQLite, Sybase, e molti altri.
Il progetto è indipendente dal sistema operativo, il che significa che può essere facilmente implementato e utilizzato su qualsiasi distribuzione GNU / Linux, nonché sul Microsoft Windows, BSD o sistemi operativi Mac OS X. Entrambe le architetture hardware a 32-bit e 64-bit sono supportati in questo momento

Cosa c'è di nuovo in questa versione:.

  • orm:
  • [orm] [bug] [motore] Corretto il bug che ha colpito in generale le stesse classi di evento come quello di # 3199, quando il parametro True = nome sarebbe stato utilizzato. Alcuni eventi potrebbero non riuscire a registrare, e altri non invocare gli argomenti dell'evento correttamente, in generale, nel caso di quando un evento è & quot; avvolto & quot; per l'adattamento in qualche altro modo. Il quot &; nome & quot; la meccanica sono state riorganizzate per non interferire con la firma argomento atteso da funzioni wrapper interne.
  • [orm] [bug] Corretto il bug che ha colpito molte classi di eventi, in particolare gli eventi ORM, ma anche eventi di motori, dove la solita logica di & quot; de duplicazione & quot; una chiamata ridondante event.listen () con gli stessi argomenti fallirebbe, per quegli eventi in cui è avvolto la funzione listener. Una affermazione sarebbe stato colpito all'interno registry.py. Questa affermazione è stata ora integrata nel controllo deduplicazione, con il valore aggiunto di un mezzo più semplice di controllare deduplicazione su tutta la linea.
  • [orm] [bug] avvertimento che emettono quando un complesso primaryjoin autoreferenziale conteneva funzioni, mentre allo stesso tempo è stato specificato remote_side fisso; l'avviso suggerisce l'impostazione & quot; lato remoto & quot ;. Ora emette solo se remote_side non è presente.
  • ORM dichiarativo:
  • [bug] [dichiarativa] [orm] Fixed & quot; oggetto 'NoneType' non ha un attributo 'concreto' & quot; errore quando si utilizza AbstractConcreteBase in combinazione con una sottoclasse che dichiara __abstract __.
  • Motore:
  • [motore] [bug] Le opzioni di esecuzione passate a un motore o tramite create_engine.execution_options o Engine.update_execution_options () non sono passati al collegamento speciale utilizzato per inizializzare il dialetto all'interno del & quot; collegare prima & quot; evento; dialetti di solito eseguire le proprie query in questa fase, e nessuna delle opzioni disponibili attuali dovrebbero essere applicate qui. In particolare, il & quot; autocommit & quot; Opzione stava causando un tentativo di autocommit in questa iniziale collegare che fallire con un AttributeError causa dello stato non standard della connessione.
  • [motore] [bug] Le chiavi di stringa che vengono utilizzati per determinare le colonne colpite per un INSERT o UPDATE sono ora ordinati quando contribuiscono alla & quot; compilato la cache & quot; chiave di cache. Queste chiavi sono state in precedenza non deterministicamente ordinato, cioè la stessa dichiarazione potrebbe essere memorizzata nella cache più volte sui tasti equivalenti, che costano tanto in termini di memoria e prestazioni.
  • sql:
  • [sql] [bug] Corretto errore in cui un buon numero di elementi SQL all'interno del pacchetto di sql non riuscirebbe a __repr __ () con successo, a causa di una descrizione mancante attributo che sarebbe poi invocare un overflow ricorsione quando un AttributeError interna sarebbe poi ri -invoke __repr __ ().
  • [sql] [bug] Un adeguamento tabella / indice di riflessione in modo tale che se un indice segnala una colonna che non si trova ad essere presente nella tabella, un avviso viene emesso e la colonna viene saltato. Ciò può verificarsi per alcune situazioni particolari colonna sistema come è stato osservato con Oracle.
  • [sql] [bug] Corretto il bug in cui CTE literal_binds argomento compilatore non sarebbe sempre essere propagato correttamente quando si CTE riferimento a un altro alias CTE in un comunicato.
  • [sql] [errore] Fixed 0.9.7 regressione causata da # 3067 in combinazione con un test di unità mis-denominata tale che la cosiddetta & quot; schema & quot; tipi come booleano e Enum non potevano più essere in salamoia.
  • PostgreSQL:
  • [PostgreSQL] [funzione] [pg8000] supporto viene aggiunto per & quot; sane fila più count & quot; con il driver pg8000, che si applica soprattutto per quando si utilizza il controllo delle versioni con l'ORM. La funzione è la versione rilevata sulla base pg8000 1.9.14 o superiore in uso. Tirare richiesta cortesia Tony Locke.
  • [PostgreSQL] [bug] A rivisitare a questo problema prima patch in 0.9.5, apparentemente di accesso .closed di psycopg2 non è affidabile come abbiamo assunto, così abbiamo aggiunto un controllo esplicito per i messaggi di eccezione & quot; SSL errore SYSCALL : Bad descrittore di file & quot; e & quot; SSL errore SYSCALL: EOF rilevato & quot; quando si rileva un scenario è disconnessione. Continueremo a consultare di psycopg2 connection.closed come un primo controllo.
  • [PostgreSQL] [bug] Corretto errore in cui il tipo PostgreSQL JSON non è stato in grado di persistere o rendere altrimenti un valore di colonna SQL NULL, piuttosto che un JSON-encoded 'null'. Per supportare questo caso, le modifiche sono le seguenti:
  • Il valore nullo () ora può essere specificato, che sarà sempre risultato un valore NULL conseguente dichiarazione.
  • Un nuovo parametro si aggiunge JSON.none_as_null, che quando True indica che il valore Nessuno Python dovrebbe essere peristed come SQL NULL, invece di JSON-codificato 'null'.
  • Retrival di NULL come Nessuno viene riparato anche per DBAPIs diversi psycopg2, cioè pg8000.
  • [PostgreSQL] [bug] Il sistema di avvolgimento eccezione per errori DBAPI può ora ospitare eccezioni DBAPI non standard, come ad esempio il TransactionRollbackError psycopg2. Tali eccezioni saranno ora essere sollevate con la sottoclasse disponibile più vicino a sqlalchemy.exc, nel caso di TransactionRollbackError, sqlalchemy.exc.OperationalError.
  • [PostgreSQL] [bug] Corretto errore in oggetto postgresql.array dove rispetto ad una lista Python pianura non riuscirebbe a utilizzare il costruttore matrice corretta. Tirare richiesta cortesia Andrew.

  • Metodo
  • [PostgreSQL] [Bug] Aggiunta una FunctionElement.alias supportati () per funzioni, ad esempio, il costrutto func. In precedenza, il comportamento di questo metodo è stato definito. Gli attuali imita comportamento che di pre-0.9.4, che è che la funzione è attiva in una singola colonna dalla clausola con il dato nome alias, dove la colonna si è denominato in forma anonima.
  • mysql:
  • [mysql] [bug] [mysqlconnector] Mysqlconnector a partire dalla versione 2.0, probabilmente come effetto collaterale del pitone 3 unione, ora non si aspetta segni di percentuale (ad esempio utilizzato come operatore modulo e altri) per raddoppiare, anche quando si utilizza la & quot; pyformat & quot; Formato parametro legato (questo cambiamento non è documentato da Mysqlconnector). Il dialetto ora controlla py2k e per mysqlconnector meno di versione 2.0 quando rileva se l'operatore modulo deve essere reso come %% o%.
  • [mysql] [bug] [mysqlconnector] Unicode SQL è ora passata per la versione 2.0 e superiori MySQLconnector; per Py2k e MySQL & lt; 2.0, le stringhe sono codificati.
  • sqlite:
  • [SQLite] [bug] Quando si seleziona da un UNION utilizzando un file di database collegato, i nomi rapporti di driver pysqlite colonna in cursor.description come 'dbname.tablename.colname', invece di 'tablename.colname' come fa normalmente per un UNION (si noti che si suppone essere solo 'colname' per entrambi, ma lavoriamo intorno). La logica traduzione colonna qui è stato adeguato per recuperare il token più a destra, piuttosto che il secondo token, così funziona in entrambi i casi. Soluzione cortesia Tony Roberts.
  • mssql:
  • [mssql] [Bug] Risolto il rilevamento stringa di versione in dialetto pymssql di lavorare con Microsoft SQL Azure, che cambia la parola & quot; SQL Server & quot; & quot; SQL Azure & quot;.
  • oracle:
  • [oracle] [Bug] Risolto lunga bug in Oracle dialetto in cui i nomi dei parametri legati che è iniziato con i numeri non sarebbero citati, come Oracle non piace numerici in nomi di parametri legati.
  • misc:
  • [bug] [dichiarativa] Risolto un race condition improbabile osservato in alcune configurazioni utente finale esotiche, dove il tentativo di verificare la presenza di & quot; nome duplicato classe & quot; in dichiarativa avrebbe colpito su un riferimento debole non-tutto-pulito-up legate a qualche altra classe viene rimosso; il controllo qui ora assicura il weakref riferimento ancora un oggetto prima di chiamare su di esso ulteriormente.
  • [bug] [ext] Corretto errore nell'ordinare lista in cui l'ordine delle voci sarebbe stato gettato fuori durante una raccolta sostituire evento, se la bandiera reorder_on_append stati impostata su true. La correzione assicura che l'elenco ordinamento solo gli impatti della lista che è esplicitamente associato all'oggetto.
  • [bug] [ext] Corretto errore in cui ext.mutable.MutableDict non è riuscito a implementare il metodo update () dizionario, quindi non cattura le modifiche. Tirare richiesta cortesia Matt Chisholm.
  • [bug] [ext] Corretto errore in cui una sottoclasse personalizzata di ext.mutable.MutableDict non si presentava in un & quot; costringere & quot; operazione, e avrebbe invece restituire un ext.mutable.MutableDict pianura. Tirare richiesta cortesia Matt Chisholm.
  • [bug] [piscina] Corretto errore in registrazione pool di connessioni in cui quot & the; collegamento controllato fuori & quot; messaggio registrazione di debug non emetterebbe se la registrazione sono stati istituiti con logging.setLevel (), invece di usare il flag echo_pool. Sono stati aggiunti prove per affermare questa registrazione. Si tratta di una regressione che è stato introdotto in 0.9.0.

Cosa c'è di nuovo nella versione 0.5.0:

  • novità
  • generale
  • Documentazione è stato convertito in Sfinge. In particolare, la documentazione API generata è stata costruita in un completo quot soffiato &; API Reference & quot; sezione che organizza la documentazione editoriale combinato con docstring generati. Collegamento trasversale tra le sezioni e documentazione API sono notevolmente migliorate, una funzione di ricerca-javascript motore è fornito, e un indice di tutte le classi, funzioni e componenti è fornito.
  • setup.py ora importa setuptools solo opzionalmente. Se non è presente, viene utilizzato distutils. Il nuovo & quot; pip & quot; installer è raccomandato su easy_install come si installa in modo più semplificato.
  • aggiunto un esempio estremamente semplice di una integrazione PostGIS nella cartella esempi.
  • orm
  • Query.with_polymorphic () ora accetta un terzo argomento & quot; discriminatore & quot; che sostituirà il valore di mapper.polymorphic_on per tale ricerca. Mappers stessi non richiedono polymorphic_on da impostare, anche se il mapper ha un polymorphic_identity. Quando non è impostato, il mapper caricherà non polimorfico per impostazione predefinita. Insieme, queste due caratteristiche permettono una configurazione eredità calcestruzzo non polimorfica usare caricamento polimorfa su una base per-query, dal momento che le configurazioni di cemento sono soggetti a molti problemi quando viene utilizzato polimorfico in tutti i casi.
  • dynamic_loader accetta un query_class = per personalizzare le classi query utilizzate sia per la collezione dinamica e le query costruite da esso.
  • query.order_by () accetta Nessuno che rimuoverà qualsiasi stato order_by sospeso dalla query, nonché annullare qualsiasi mapper / relazione ordinamento configurato. Ciò è utile soprattutto per disattivare l'ordinamento specificato un dynamic_loader (). [Biglietto: 1079]
  • sql

  • Oggetti
  • RowProxy possono essere utilizzati al posto degli argomenti Dizionario inviati a Connection.Execute () e amici. [Biglietto: 935]
  • dialetto
  • Aggiunto un nuovo attributo description_encoding sul dialetto che viene utilizzato per la codifica il nome della colonna durante l'elaborazione dei metadati. Questo di solito il valore predefinito è utf-8.
  • mssql
  • Aggiunta in un nuovo tipo MSGenericBinary. Questa mappa al tipo binario in modo che possa implementare il comportamento specializzato di trattamento di tipi di lunghezza specificata come tipi binari a larghezza fissa e tipi non-lunghezza una lunghezza variabile di tipo binario non associato.
  • inserimento in nuovi tipi: MSVarBinary e MSImage. [Biglietto: 1249]
  • Inserito nel MSReal, MSNText, MSSmallDateTime, MSTime, MSDateTimeOffset, e tipi MSDateTime2
  • SQLite
  • Tabella riflessione memorizza ora il valore defaultClause effettivo per la colonna. [Biglietto: 1266]
  • correzioni, cambiamenti comportamentali
  • generale
  • orm
  • Eccezioni sollevate durante compile_mappers () sono oggi conservati a fornire & quot; comportamento appiccicoso & quot;
  • se un hasattr () chiamata su un attributo mappato-compilato pre innesca una mancanza compilare e sopprime l'eccezione, la successiva compilazione è bloccata e l'eccezione viene ribadito nella prossima compilazione () chiamata. Questo problema si verifica di frequente quando si utilizza dichiarativo.
  • property.of_type () è ora riconosciuto su un bersaglio a tavolo singolo ereditare, quando usato nel contesto di prop.of_type (..). Qualsiasi () / ha (), nonché query.join (prop. of_type (...)).
  • query.join () genera un errore quando la destinazione del join non corrisponde l'attributo basato sulla proprietà
  • mentre è improbabile che qualcuno sta facendo questo, l'autore SQLAlchemy era colpevole di questo particolare comportamento loosey-goosey.
  • Corretto il bug quando si utilizza weak_instance_map = False dove gli eventi modificati non sarebbero intercettati per un flush (). [Biglietto: 1272]
  • Corretti alcuni deep & quot; colonna corrispondenza & quot; questioni che potrebbero avere un impatto di una query fatta contro un selezionabile contenente più versioni della stessa tabella, così come i sindacati e simili che contenevano le stesse colonne della tabella in diverse posizioni della colonna a diversi livelli. [Biglietto: 1268]
  • classi di confronto personalizzato utilizzato in combinazione con column_property (), relazione (), ecc possono definire nuovi metodi di confronto sul comparatore, che si renderanno disponibili tramite __getattr __ () sul InstrumentedAttribute. Nel caso di tradurre () o comparable_property (), gli attributi vengono risolti prima sul descrittore definito dall'utente, allora il comparatore definito dall'utente.
  • Aggiunto ScopedSession.is_active di accesso. [Biglietto: 976]
  • Può passare attributi mappati e oggetti colonna come chiavi per query.update ({}). [Biglietto: 1262]
  • attributi mappate passati ai valori () di un inserto livello di espressione () o update () userà le chiavi delle colonne mappate, non quella dell'attributo mappato.
  • Corretto problema con Query.delete () e Query.update () non funziona correttamente con i parametri bind. [Biglietto: 1242]
  • Query.select_from (), from_statement () assicurare che l'argomento data è una FromClause, o Text / Select / Union, rispettivamente.
  • query () può essere passato a & quot; composito & quot; attributo come espressione colonna e sarà ampliato. Un po 'relativi a [biglietto: 1253].
  • query () è un po 'più robusto quando passò varie espressioni di colonna come gli archi, clauselists, il testo () costrutti (che può significare solo genera un errore più bene).
  • prima () funziona come previsto con Query.from_statement ().
  • Corretto errore introdotto in 0.5rc4 coinvolge eager loading non funziona per le proprietà che sono stati aggiunti a un mapper post-compilazione usando add_property () o equivalente.
  • Corretto errore in cui molti-a-molti relazione () con VIEWONLY = True non avrebbe correttamente riferimento il collegamento tra secondary- & gt;. Remoto
  • elementi duplicati in una collezione di lista saranno mantenute per il rilascio inserti a & quot; secondaria & quot; tavolo in una relazione molti-a-molti. Supponendo che il tavolo m2m ha un vincolo di chiave univoca o primaria su di esso, questo aumenterà la violazione del vincolo previsto invece di cadere in silenzio le voci duplicate. Si noti che il vecchio comportamento rimane per una relazione uno-a-molti in quanto le voci di raccolta in quel caso non comportino istruzioni INSERT e SQLA non manualmente collezioni di polizia. [Biglietto: 1232]
  • Query.add_column () può accettare oggetti FromClause nello stesso modo come session.query () può.
  • Confronto di molti-a-uno relazione a NULL è adeguatamente convertito IS NOT NULL sulla base di non _ ().
  • controlli supplementari aggiunti per garantire esplicito primaryjoin / secondaryjoin sono casi ClauseElement, per evitare gli errori più confuse in seguito. [Biglietto: 1087]
  • Improved mapper () controlla per le classi non-classe. [Biglietto: 1236]
  • argomento comparator_factory è ora documentata e supportata da tutti i tipi MapperProperty, compreso column_property (), relazione (), backref (), e sinonimi () [biglietto: 5051].
  • Cambiato il nome di PropertyLoader a RelationProperty, per essere coerenti con tutti gli altri nomi. PropertyLoader è ancora presente come sinonimo.
  • fisso & quot; doppio iter () & quot; chiamata causando errori del bus in shard API, rimosso result.close errant () lasciati dalla versione 0.4. [Biglietto: 1099] [biglietto: 1228]
  • fatte cascate Session.merge non attivano autoflush. Istanze Correzioni fusa ottenere prematuramente inseriti con valori mancanti.
  • Due correzioni per aiutare a prevenire le colonne out-of-band di essere resi in scenari polymorphic_union eredità (che provoca poi tavoli extra da rendere nella clausola FROM causano prodotti cartesiani):
  • miglioramenti & quot; colonna adattamento & quot; per a- & gt; b- & gt;. c situazioni di successione per individuare meglio le colonne che sono legati gli uni agli altri attraverso livelli multipli di indirezione, piuttosto che rendere la colonna non adattato
  • & quot; discriminatore polimorfico & quot; colonna è resa solo per il mapper reale interrogato contro. La colonna non sarà & quot; tirato in & quot; da una sottoclasse o mapper superclasse, dato che non è necessario.
  • argomento shard_id fissa su ShardedSession.execute (). [Biglietto: 1072]
  • sql
  • Le colonne possono ancora contenere segni di percentuale entro i loro nomi. [Biglietto: 1256]
  • sqlalchemy.sql.expression.Function è ora una classe pubblica. Può essere sottoclassi per fornire funzioni SQL definite dall'utente in stile imperativo, anche con i comportamenti prestabiliti. L'esempio postgis.py illustra un utilizzo di questo.
  • PickleType ora favorisce il confronto == per impostazione predefinita, se l'oggetto in arrivo (ad esempio un dict) implementa __eq __ (). Se l'oggetto non implementa __eq __ () e mutevole = True, un avviso di disapprovazione è sollevata.
  • Risolto il stranezza importazione sqlalchemy.sql a non esportare __names__. [Biglietto: 1215]
  • Uso lo stesso oggetto ForeignKey ripetutamente genera un errore invece di non aver seguito in silenzio. [Biglietto: 1238]
  • metodo Aggiunto NotImplementedError per params () su Inserisci / Aggiorna / Elimina costrutti. Questi elementi attualmente non supportano questa funzionalità, che sarebbe anche un po 'fuorviante rispetto ai valori ().
  • chiavi esterne riflessa sarà individuare correttamente la colonna di riferimento, anche se la colonna è stato dato un & quot; & quot; chiave attributo diverso dal nome del riflesso. Questo risultato è ottenuto attraverso una nuova bandiera ForeignKey / ForeignKeyConstraint chiamato & quot; link_to_name & quot ;, se True significa che il nome dato è la non il tasto assegnato cui a nome della colonna,. [Biglietto: 650]
  • select () può accettare un ClauseList come colonna nello stesso modo come una tabella o altro selezionabile e le espressioni interne verranno utilizzati come elementi di colonna. [Biglietto: 1253]
  • & quot; passiva & quot; bandiera sul session.is_modified () viene propagato correttamente al gestore attributo.
  • union () e union_all () non sarà colpire alcun order_by (), che è stato applicato per la select () s dentro. Se union () una select () con order_by () (presumibilmente per sostenere LIMIT / offset), si dovrebbe anche chiamare self_group () su di esso per applicare parentesi.
  • motore / piscina
  • Connection.invalidate () controlla per lo stato chiuso per evitare errori di attributi. [Biglietto: 1246]
  • NullPool supporta ricollegare sul comportamento fallimento. [Biglietto: 1094]
  • Aggiunto un mutex per la creazione iniziale piscina quando utilizza pool.manage (dbapi). Questo impedisce un caso minore di & quot; dogpile & quot; comportamenti che altrimenti verificarsi un avvio carico pesante. [Biglietto: 799]
  • _execute_clauseelement () torna ad essere un metodo privato. Subclassing Connection non è necessario ora che ConnectionProxy è disponibile.
  • documentazione
  • Biglietti [biglietti: 1200] [biglietti: 1149].
  • Aggiunta nota su create_session () di default.
  • Aggiunta la sezione su metadata.reflect ().
  • sezione Aggiornato `TypeDecorator`.
  • Riscritta la & quot; ThreadLocal & quot; Sezione strategia dei documenti a causa di recente confusione su questa funzione.
  • Rimosso malamente fuori moda 'polymorphic_fetch' e docs 'select_table' da eredità, rielaborato nella seconda metà del & quot; unito ereditarietà delle tabelle & quot;.
  • documentato `comparator_factory` kwarg, ha aggiunto nuova sezione doc & quot; personalizzata Comparatori & quot;.
  • mssql
  • rifattorizzazione di tipo Data / Ora. Il tipo di dati `` smalldatetime`` non tronca per solo una data, e sarà ora mappato al tipo MSSmallDateTime. [Biglietto: 1254]
  • Corretto un problema con valori numerici ad accettare un int.
  • Mappato `` char_length`` alla `` `funzione LEN ()`.
  • Se un `` INSERT`` include una selezione secondaria la `` INSERT`` viene convertito da un `` INSERT INTO VALUES`` costruire un `` INSERT INTO SELECT`` costrutto.
  • Se la colonna è parte di un `` primary_key`` sarà `` Non NULL`` poiché MSSQL non consente `` NULL`` in colonne primary_key.
  • `` MSBinary`` ora restituisce un `` BINARY`` invece di un `` IMAGE``. Si tratta di un cambiamento a ritroso incompatibili in quanto `` BINARY`` è un tipo di dati di lunghezza fissa, mentre `` IMAGE`` è un tipo di dati di lunghezza variabile. [Biglietto: 1249]
  • `` get_default_schema_name`` è ora riflessa dal database sulla base dello schema predefinito dell'utente. Questo funziona solo con MSSQL 2005 e versioni successive. [Biglietto: 1258]
  • Supporto per la raccolta Aggiunto attraverso l'uso di un nuovo argomento di confronto. Questo è supportato dai seguenti tipi: char, nchar, varchar, nvarchar, text, ntext. [Biglietto: 1248]
  • Le modifiche ai parametri della stringa di connessione favoriscono DSN come le specifiche di default per pyodbc. Vedere la docstring mssql.py per le istruzioni d'uso dettagliate.
  • Aggiunto il supporto sperimentale di punti di salvataggio. Attualmente non funziona pienamente con le sessioni.
  • Il supporto per tre livelli di colonna nullability: NULL, NOT NULL, e configurato di default del database. La configurazione di default Column (nullable = True) ora genera NULL nel DDL. In precedenza non specifica è stata emessa e il default del database avrà effetto (di solito NULL, ma non sempre). Per richiedere esplicitamente il database predefinito, configurare le colonne con nullable = Nessuno e nessuna specificazione viene emesso in DDL. Questo è indietro comportamento incompatibile. [Biglietto: 1243]
  • postgres
  • & quot;% & quot; segni in testo () costrutti vengono automaticamente a & quot; %% & quot ;. A causa della natura ritroso incompatibili di questo cambiamento, un avviso viene emesso se viene rilevato '%%' nella stringa. [Biglietto: 1267]
  • Calling alias.execute () in combinazione con server_side_cursors non alzerà AttributeError.
  • Supporto riflessione Aggiunto indice di Postgres, con un grande cerotto che a lungo trascurato, presentata da Ken Kuhlman. [Biglietto: 714]
  • oracle
  • Rettificato il formato di create_xid () per riparare commit a due fasi. Ora abbiamo rapporti di campo di Oracle commit a due fasi di funzionare correttamente con questo cambiamento.
  • added OracleNVarchar, produce NVARCHAR2, e sottoclassi anche Unicode in modo che convert_unicode = true per impostazione predefinita. NVARCHAR2 riflette in questo tipo automaticamente in modo da queste colonne passano unicode su un tavolo riflesso senza convert_unicode esplicito = true bandiere. [Biglietto: 1233]
  • Risolto bug che impediva i params di taluni tipi vengano ricevuti; grazie una tonnellata per huddlej a wwu.edu! [Biglietto: 1265]
  • mysql
  • & quot;% & quot; segni in testo () costrutti vengono automaticamente a & quot; %% & quot ;. A causa della natura ritroso incompatibili di questo cambiamento, un avviso viene emesso se viene rilevato '%%' nella stringa.
  • Corretto errore in deroga rilancio quando colonne FK non presente durante la riflessione. [Biglietto: 1241]
  • Corretto il bug che coinvolge riflesso di una tabella remota-schema con ref chiave esterna ad un altro tavolo in quello schema.
  • associationproxy
  • Le proprietà del proxy di associazione sono mettersi a disposizione a livello di classe, ad esempio, MyClass.aproxy. Precedentemente questo valutato per Nessuno.
  • dichiarativo
  • L'elenco completo di argomenti accettato come stringa backref () comprende 'primaryjoin', 'secondaryjoin', 'secondari', 'FOREIGN_KEYS', 'remote_side', 'order_by'.

Requisiti :

  • Python

Programmi simili

CrunchyFrog
CrunchyFrog

11 May 15

Elephantoplasty
Elephantoplasty

14 Apr 15

odbcpp
odbcpp

14 Apr 15

Commenti a SQLAlchemy

I commenti non trovato
Aggiungi commento
Accendere le immagini!