SQLAlchemy

Logiciel capture d'écran:
SQLAlchemy
Détails logiciels:
Version: 0.9.8
Date de transfert: 17 Feb 15
Développeur: Michael Bayer
Licence: Gratuit
Popularité: 85

Rating: 3.5/5 (Total Votes: 2)

SQLAlchemy est un open source, indépendante plateforme logiciel de bibliothèque et une connexion écrite dans le langage de programmation Python et conçu à partir du sol à agir comme une bibliothèque d'abstraction de données, ORM (Object Relational Mapper) et SQL boîte à outils pour Python.
Si vous & rsquo; re un développeur Python, SQLAlchemy vous donnera toute la flexibilité et la puissance de SQL, offrant une collection complète de modèles de persistance de niveau d'entreprise populaire, qui ont été conçus pour access.Features performants et efficaces base de données à un logiciel glanceThe est extrêmement facile à utiliser, assez puissant pour les tâches complexes et modulaire. Avec SQLAlchemy vous serez en mesure d'organiser les opérations en cours CRUD, permet l'utilisation d'expressions booléennes, les fonctions, les opérateurs, les alias de table, clauses UNION, corrélée EXISTE clauses, créer, insérer, supprimer et les requêtes de mise à jour, les sous-requêtes sélectionnables, mises à jour corrélées, intérieure et jointures externes, et les paramètres de liaison.
En outre, il peut être utilisé pour générer des bases de données, ainsi que pour les introspection, le soutien pour les objets et les collections de chargement connexe, un soutien pour la création de la persistance transparente des objets basés sur des modèles, le soutien à la manipulation et la construction de modèles de domaine, ainsi que le soutien pour la synchronisation tous les changements avec la transaction en cours automatiquement.
Parmi les autres caractéristiques, on peut citer un système de requête orientée relationnel que & rsquo; s capable d'exposer tous SQL & rsquo; s fonctionnalités, y compris la corrélation, des jointures et des sous-requêtes, une couche d'interaction DBAPI, un système de construction de SQL de base, une abstraction complète de base de données autonome couche, le soutien aux extensible métadonnées de schéma de SQL, la langue d'expression, le regroupement de connexion, des types personnalisés et de type coercion.Supports une grande variété de databasesThe programme comprend dialectes pour une grande variété de serveurs et moteurs de base de données, y compris MySQL, PostgreSQL, Firebird, Oracle, Microsoft SQL Server, SQLite, Sybase, et bien d'autres.
Le projet est indépendant d'un système d'exploitation, ce qui signifie qu'il peut être facilement déployé et utilisé sur une distribution GNU / Linux, ainsi que sur le Microsoft Windows, BSD ou les systèmes d'exploitation Mac OS X. Les deux 32-bits et 64-bits architectures matérielles sont pris en charge à ce moment

Ce qui est nouveau dans cette version:.

  • ORM:
  • [ORM] [bug] [moteur] Correction d'un bug qui affectait généralement les mêmes classes d'événement comme celui de # 3199, lorsque le paramètre nommé = True serait utilisé. Certains événements ne manquera pas de vous inscrire, et d'autres ne seraient pas invoquer les arguments d'événement correctement, généralement dans le cas quand un événement est & quot; enveloppé & quot; pour l'adaptation d'une autre manière. Le & quot; nom & quot; la mécanique ont été réarrangées pour ne pas interférer avec la signature d'argument attendu par des fonctions wrapper internes.
  • [ORM] [bug] Correction d'un bug qui a touché de nombreuses classes de l'événement, en particulier les événements ORM, mais aussi événements du moteur, où la logique habituelle de & quot; de duplication & quot; un appel redondant event.listen () avec les mêmes arguments ne permettrait pas, pour ces événements où la fonction d'auditeur est enveloppé. Une assertion serait frappé sein registry.py. Cette affirmation a été intégré dans le contrôle de la déduplication, avec l'avantage supplémentaire d'un moyen plus simple de vérifier la déduplication à travers le conseil d'administration.
  • [ORM] [bug] Correction d'avertissement qui émettent quand un auto-référentielle primaryjoin complexe contenait fonctions, tandis que dans le même temps remote_side a été spécifié; l'avertissement suggère la mise en & quot; côté éloigné & quot ;. Il ne émet maintenant si remote_side ne est pas présent.
  • ORM déclarative:
  • [bug] [déclarative] [ORM] fixe & quot; «concret» & quot objet 'NoneType' n'a pas d'attribut; AbstractConcreteBase erreur lors de l'utilisation en association avec une sous-classe qui déclare __abstract __.
  • moteur:
  • [moteur] [bug] Les options d'exécution passés à un moteur soit via create_engine.execution_options ou Engine.update_execution_options () ne sont pas transmises à la connexion spécial utilisé pour initialiser le dialecte dans le & quot; d'abord vous connecter & quot; un événement; dialectes habituellement effectuer leurs propres requêtes dans cette phase, et aucune des options actuelles disponibles devraient être appliquées ici. En particulier, le & quot; autocommit & quot; option a été à l'origine d'une tentative de autocommit au sein de cette première connecter qui échouera avec une AttributeError raison de l'état non-standard de la connexion.
  • [moteur] [bug] Les clés de chaîne qui sont utilisés pour déterminer les colonnes touchées pour un INSERT ou UPDATE sont maintenant triés quand ils contribuent à la & quot; compilé cache & quot; clé de cache. Ces touches ont été commandés auparavant pas déterministe, ce qui signifie la même déclaration pourrait être mis en cache plusieurs fois sur les touches équivalentes, ce qui coûte à la fois en termes de mémoire ainsi que la performance.
  • sql:
  • [sql] [bug] Correction d'un bug où un bon nombre d'éléments de SQL dans le package de SQL serait manquer de __repr __ () avec succès, en raison de une description attribut manquant qui serait ensuite invoquer un débordement récurrente lorsque an AttributeError interne serait alors à nouveau -invoke __repr __ ().
  • [sql] [bug] Un ajustement à la table / index réflexion de sorte que si un indice signale une colonne qui ne est pas trouvé d'être présent dans le tableau, un avertissement est émis et la colonne est ignorée. Cela peut se produire dans certaines situations particulières de colonne du système comme cela a été observé avec Oracle.
  • [sql] [bug] Correction d'un bug dans les CTE où literal_binds argument compilateur ne serait pas toujours être correctement propagé quand on CTE référé à un autre CTE aliasé dans un communiqué.
  • [sql] [bug] Correction 0.9.7 régression causée par # 3067 en conjonction avec un test unitaire mal-nommé de telle sorte que l'on appelle & quot; & quot schéma; types comme booléenne et Enum ne pouvaient plus être décapés.
  • PostgreSQL:
  • [PostgreSQL] [option] [pg8000] assistance technique est ajoutée pour & quot; plusieurs rangées saine compte & quot; avec le pilote d'pg8000, qui se applique surtout lors de l'utilisation des versions avec l'ORM. La fonction est une version-détectée sur la base pg8000 1.9.14 ou plus en cours d'utilisation. Tirez demande courtoisie Tony Locke.
  • [PostgreSQL] [bug] Un revoir à cette question en premier patché en 0.9.5, apparemment accesseur .closed de psycopg2 ne est pas aussi fiable que nous avons supposé, donc nous avons ajouté un contrôle explicite pour les messages d'exception & quot; SSL erreur de SYSCALL : Bad descripteur de fichier & quot; et & quot; SSL erreur de SYSCALL: EOF détectée & quot; lors de la détection d'un scénario est-déconnexion. Nous continuerons de consulter connection.closed comme un premier chèque.
  • de psycopg2
  • [PostgreSQL] [bug] Correction d'un bug où le type JSON Postgresql ne était pas capable de persister ou de rendre une valeur de colonne SQL NULL, plutôt que d'un JSON codée 'null'. Pour soutenir ce cas, les changements sont les suivants:
  • La valeur null () peut maintenant être spécifié, qui entraînera toujours une valeur NULL résultant dans la déclaration.
  • Un nouveau paramètre JSON.none_as_null est ajouté, qui, lorsqu'il est True indique que la valeur Aucun Python devrait être peristed que SQL NULL, plutôt que JSON-codé 'null'.
  • Retrival NULL que Aucun est également réparé pour DBAPIs autres que psycopg2, à savoir pg8000.
  • [PostgreSQL] [bug] Le système d'emballage d'exception pour les erreurs de DBAPI peut désormais accueillir exceptions DBAPI non-standard, telles que l'TransactionRollbackError de psycopg2. Ces exceptions seront maintenant soulevé le plus proche en utilisant la sous-classe disponible dans sqlalchemy.exc, dans le cas de TransactionRollbackError, sqlalchemy.exc.OperationalError.
  • [PostgreSQL] [bug] Correction d'un bug dans l'objet postgresql.array où la comparaison à une liste de Python brut ne parviendrait pas à utiliser le constructeur de tableau correct. Tirez demande courtoisie Andrew.
  • méthode [PostgreSQL] [Bug] Ajout d'un FunctionElement.alias soutenus () à des fonctions, par exemple, la construction de FUNC. Auparavant, le comportement de cette méthode était indéfini. Les mimiques de comportement actuels que de pré-0.9.4, qui est que la fonction est activée dans une seule colonne clause FROM avec le nom de l'alias donné, où la colonne se est anonyme nommé.
  • mysql:
  • [mysql] [bug] [mysqlconnector] Mysqlconnector partir de la version 2.0, probablement un effet secondaire du python 3 fusion, maintenant ne se attend pas à des signes de pourcentage (par exemple, utilisé comme opérateur modulo et autres) d'être doublé, même en utilisant le & quot; pyformat & quot; format de paramètre lié (ce changement ne est pas documenté par Mysqlconnector). Le dialecte vérifie maintenant py2k et mysqlconnector moins de la version 2.0 lors de la détection si l'opérateur de module devrait être rendu comme %% ou%.
  • [mysql] [bug] [mysqlconnector] Unicode SQL est maintenant passé à la version 2.0 et MySQLconnector ci-dessus; pour Py2k et MySQL & lt; 2.0, les chaînes sont encodées.
  • sqlite:
  • [sqlite] [bug] Lors de la sélection d'un UNION utilisant un fichier de base de données attachée, les noms des rapports du pilote d'pysqlite de colonne dans cursor.description comme «dbname.tablename.colname ', au lieu de« tablename.colname' comme il le fait normalement Pour une Union (à noter que ce est censé être juste 'colname »pour les deux, mais nous travaillons autour de lui). La logique de traduction de colonne ici a été ajusté pour récupérer le jeton de droite, plutôt que le deuxième jeton, de sorte qu'il fonctionne dans les deux cas. Solution courtoisie Tony Roberts.
  • MSSQL:
  • [mssql] [bug] Correction de la détection version chaîne dans le dialecte pymssql de travailler avec Microsoft SQL Azure, qui change le mot & quot; SQL Server & quot; & quot; SQL Azure & quot;.
  • Oracle:
  • [Oracle] [bug] Correction de longue date bogue dans Oracle dialecte où les noms de paramètres liés qui ont commencé avec des numéros ne seraient pas cités, comme Oracle ne aime pas les valeurs numériques dans les noms de paramètres liés.
  • Divers:
  • [bug] [déclarative] fixe une condition de course peu probable observée dans certaines configurations utilisateur final exotiques, où la tentative de chèque de & quot; duplicate nom de classe & quot; dans déclarative aurait trouvé une référence faible sans totalement nettoyés-up liées à une autre catégorie étant retiré; le chèque ici assure désormais le weakref référence toujours un objet avant d'inviter davantage.
  • [bug] [ext] Correction d'un bug dans la liste où l'ordre des éléments serait jeté hors tension pendant une collection remplacer les cas, si le drapeau de reorder_on_append été définie sur True commande. Cette correction garantit que la liste de commande seulement un impact sur la liste qui est explicitement associée à l'objet.
  • [bug] [ext] Correction d'un bug où ext.mutable.MutableDict n'a pas réussi à mettre en œuvre la méthode update () dictionnaire, donc pas attraper changements. Tirez demande courtoisie Matt Chisholm.
  • [bug] [ext] Correction d'un bug où une sous-classe personnalisée de ext.mutable.MutableDict ne apparaîtrait pas dans un & quot; contraindre & quot; fonctionnement, et serait plutôt retourner un ext.mutable.MutableDict plaine. Tirez demande courtoisie Matt Chisholm.
  • [bug] [piscine] Correction d'un bug dans l'exploitation forestière de pool de connexion où le & quot; connexion vérifié & quot; message d'enregistrement de débogage serait pas émettre si l'exploitation forestière ont été mis en place en utilisant logging.setLevel (), plutôt que d'utiliser le drapeau de echo_pool. Tests à faire valoir cette journalisation ont été ajoutés. Ce est une régression qui a été introduit en 0.9.0.

Ce qui est nouveau dans la version 0.5.0:

  • nouvelles fonctionnalités
  • générale
  • Documentation a été converti en Sphinx. En particulier, la documentation de l'API générée a été construit dans un quot soufflé et complète; Référence de l'API & quot; section qui organise la documentation éditoriale combiné avec docstrings générés. Réticulation entre les sections et documentation de l'API sont largement améliorée, une fonction de recherche alimenté par javascript est fourni, et un index complet de toutes les classes, les fonctions et les membres est fourni.
  • setup.py importe maintenant setuptools seule option. Si pas présent, distutils est utilisé. La nouvelle & quot; pip & quot; installateur est recommandé plus easy_install comme il installe de manière plus simplifiée.
  • ajouté une illustration extrêmement basique d'une intégration de PostGIS dans le dossier des exemples.
  • ORM
  • Query.with_polymorphic () accepte désormais un troisième argument & quot; discriminateur & quot; qui remplacera la valeur de mapper.polymorphic_on pour cette requête. Cartographes eux ne ont plus besoin polymorphic_on à régler, même si le mappeur a une polymorphic_identity. Lorsqu'il ne est pas défini, le mappeur chargera non polymorphe par défaut. Ensemble, ces deux caractéristiques permettent une configuration non polymorphe héritage concret pour utiliser le chargement polymorphe sur une base par requête, puisque les configurations concrètes sont sujettes à de nombreuses questions lorsqu'il est utilisé polymorphe dans tous les cas.
  • dynamic_loader accepte un QUERY_CLASS = personnaliser les classes de requêtes utilisés à la fois pour la collection dynamique et les requêtes construites à partir il.
  • query.order_by () accepte Aucun qui permettra d'éliminer tout Etat order_by attente de la requête, ainsi que d'annuler toute mapper / relation commande configuré. Ceci est principalement utile pour outrepasser la commande spécifiée sur une dynamic_loader (). [Billet: 1079]
  • SQL

  • Objets
  • RowProxy peuvent être utilisés à la place des arguments dictionnaire envoyés à Connection.Execute () et les amis. [Billet: 935]
  • dialecte
  • Ajout d'un nouvel attribut de description_encoding sur le dialecte qui est utilisé pour coder le nom de colonne lors du traitement des métadonnées. Cette habituellement par défaut UTF-8.
  • MSSQL
  • Ajout d'un nouveau type MSGenericBinary. Cette correspondance avec le type binaire de sorte qu'il peut mettre en œuvre le comportement spécialisé de traitement types de longueur spécifiée comme types binaires de largeur fixe et types non-longueur comme une longueur variable de type binaire non liée.
  • Ajout de nouveaux types: MSVarBinary et MSImage. [Billet: 1249]
  • Ajout dans le MSReal, MSNText, MSSmallDateTime, MSTime, MSDateTimeOffset et types MSDateTime2
  • sqlite
  • Tableau réflexion stocke maintenant la valeur réelle defaultClause de la colonne. [Billet: 1266]
  • corrections de bugs, des changements de comportement
  • générale
  • ORM
  • Exceptions soulevées lors compile_mappers () sont maintenant conservés à fournir & quot; comportement collant & quot;
  • si un appel hasattr () sur un attribut pré-compilé mappé déclenche un défaut de compilation et supprime l'exception, compilation ultérieure est bloqué et l'exception sera réitéré à la prochaine compilation () appel. Ce problème se produit fréquemment lors de l'utilisation déclarative.
  • property.of_type () est maintenant reconnu sur une cible unique table hériter, lorsqu'il est utilisé dans le contexte de prop.of_type (..). Toute () / a () ainsi que query.join (prop. of_type (...)).
  • query.join () soulève une erreur lorsque la cible de la jointure ne correspond pas à l'attribut basée sur la propriété
  • alors il est peu probable quiconque fait cela, l'auteur SQLAlchemy était coupable de ce comportement loosey-goosey particulier.
  • Correction d'un bug lors de l'utilisation weak_instance_map = False où les événements modifiés ne seraient pas interceptés pour un flush (). [Billet: 1272]
  • Correction de quelques profonde & quot; colonne correspondance & quot; questions qui pourraient influer sur une requête formulée contre un sélectionnable contenant plusieurs versions de la même table, ainsi que des syndicats et similaire qui contenaient les mêmes colonnes de table dans différentes positions de colonne à différents niveaux. [Billet: 1268]
  • Cours de comparaison personnalisés utilisés en conjonction avec column_property (), la relation (), etc. peuvent définir de nouvelles méthodes de comparaison sur le comparateur, qui seront disponibles via __getattr __ () sur le InstrumentedAttribute. Dans le cas d'synonyme () ou comparable_property (), les attributs sont réglés sur le premier descripteur défini par l'utilisateur, puis sur le comparateur définie par l'utilisateur.
  • Ajouté ScopedSession.is_active accesseur. [Billet: 976]
  • peut passer attributs mappés et objets de colonnes comme clés pour query.update ({}). [Billet: 1262]
  • attributs mappés passés aux valeurs () d'un insert de niveau d'expression () ou update () va utiliser les touches des colonnes mappées, pas que de l'attribut mappé.
  • Correction d'un problème avec Query.delete () et Query.update () ne fonctionne pas correctement avec les paramètres de liaison. [Billet: 1242]
  • Query.select_from (), from_statement () se assurer que l'argument donné est un FromClause, ou Texte / Select / Union, respectivement.
  • query () peut être adopté une & quot; composite & quot; l'attribut comme une expression de la colonne et il sera étendu. Peu liée à [billet: 1253].
  • query () est un peu plus robuste lorsqu'il est passé diverses expressions de colonne tels que des cordes, clauselists, du texte () construit (ce qui peut signifier qu'il soulève juste une erreur plus gentiment).
  • first () fonctionne comme prévu avec Query.from_statement ().
  • Correction d'un bug introduit en 0.5rc4 impliquant le chargement désireux de ne pas fonctionner pour les propriétés qui ont été ajoutées à un post-compilation de mappeur utilisant add_property () ou équivalent.
  • Correction d'un bug où plusieurs-à-plusieurs relation () avec ViewOnly = True serait pas référencer correctement le lien entre secondary- & gt;. Distance
  • éléments en double dans une collection basée sur une liste seront maintenus lors de l'émission INSERT à un & quot; & quot secondaire; table dans une relation many-to-many. En supposant que la table de m2m a une contrainte unique ou de clé primaire sur elle, cela augmentera la violation de contrainte prévu au lieu d'abandonner silencieusement les entrées en double. Notez que l'ancien comportement reste une relation one-to-many depuis les entrées de collecte dans ce cas ne aboutissent pas à des déclarations INSERT et SQLA ne manuellement collections de police. [Billet: 1232]
  • Query.add_column () peut accepter des objets FromClause de la même manière que session.query () peut.
  • Comparaison de relation many-to-one à NULL est correctement converti en IS NOT NULL sur la base pas _ ().
  • contrôles supplémentaires ajoutés pour assurer explicite primaryjoin / secondaryjoin sont ClauseElement cas, pour éviter les erreurs plus confuses plus tard. [Billet: 1087]
  • Amélioration de mapper () vérifier les classes non-classe. [Billet: 1236]
  • l'argument comparator_factory est maintenant documenté et soutenu par tous les types MapperProperty, y compris column_property (), la relation (), backref (), et synonyme () [billet: 5051].
  • changé le nom de PropertyLoader à RelationProperty, pour être compatible avec tous les autres noms. PropertyLoader est toujours présente comme un synonyme.
  • fixe & quot; à double iter () & quot; appel provoquant des erreurs de bus dans l'API tesson, enlevé result.close errant () laissé par la version 0.4. [Billet: 1099] [billet: 1228]
  • faites cascades Session.merge déclenchent pas autoflush. Corrections cas fusionné se prématurément insérés avec des valeurs manquantes.
  • Deux correctifs pour aider à prévenir les colonnes out-of-band d'être rendu dans les scénarios polymorphic_union de succession (ce qui provoque alors des tables supplémentaires pour être rendus dans les produits cartésiens clause FROM causant):
  • améliorations à & quot; la colonne adaptation & quot; pour a- & gt; b- & gt;. c situations de succession afin de mieux localiser colonnes qui sont liés les uns aux autres par l'intermédiaire de plusieurs niveaux d'indirection, plutôt que de rendre la colonne non-adaptée
  • le & quot; discriminateur polymorphe & quot; colonne est rendue seulement pour le mappeur réelle interrogée contre. La colonne ne sera pas & quot; tiré dans & quot; à partir d'une sous-classe ou mappeur superclasse car il ne est pas nécessaire.
  • argument shard_id fixe sur ShardedSession.execute (). [Billet: 1072]
  • SQL
  • Les colonnes peuvent contenir des signes de nouveau pour cent au sein de leurs noms. [Billet: 1256]
  • sqlalchemy.sql.expression.Function est maintenant une classe publique. Il peut être sous-classé pour fournir des fonctions SQL définies par l'utilisateur dans un style impératif, y compris avec des comportements préétablis. L'exemple illustre une postgis.py utilisation de ce.
  • PickleType privilégie désormais la comparaison == par défaut, si l'objet entrant (comme un dict) implémente __eq __ (). Si l'objet ne implémente pas __eq __ () et mutable = True, un avertissement de dépréciation est soulevée.
  • Correction de l'étrangeté d'importation sqlalchemy.sql de ne pas exporter __names__. [Billet: 1215]
  • En utilisant le même objet ForeignKey plusieurs reprises soulève une erreur au lieu de ne pas en silence plus tard. [Billet: 1238]
  • méthode ajoutée NotImplementedError pour params () sur Insérer / modifier / supprimer des constructions. Ces articles ne prennent pas en charge cette fonctionnalité, qui serait aussi un peu trompeur par rapport aux valeurs ().
  • les clés étrangères réfléchie correctement localiser leur colonne référencée, même si la colonne a été donné un & quot; & quot; clé attribuer différent du nom réfléchie. Ceci est réalisé par l'intermédiaire d'un nouveau drapeau sur ForeignKey / ForeignKeyConstraint appelé & quot; & quot ;, link_to_name si vrai signifie le nom donné est le pas de sa clé affectées visées à le nom de colonne,. [Billet: 650]
  • select () peut accepter une ClauseList comme une colonne de la même manière comme un tableau ou autre sélectionnable et les expressions intérieures seront utilisés comme éléments de colonne. [Billet: 1253]
  • le & quot; & quot passive; drapeau sur session.is_modified () est correctement propagé au gestionnaire d'attribut.
  • union () et union_all () ne sera pas assommer toute order_by () qui a été appliqué à l'select () s à l'intérieur. Si vous union () un select () avec order_by () (sans doute pour soutenir LIMIT / OFFSET), vous devez également appeler self_group () sur elle pour appliquer parenthèses.
  • Moteur / piscine
  • Connection.invalidate () vérifie l'état fermé pour éviter les erreurs d'attributs. [Billet: 1246]
  • NullPool soutient reconnecter sur le comportement de l'échec. [Billet: 1094]
  • Ajout d'un mutex pour la création initiale de la piscine lors de l'utilisation pool.manage (DBAPI). Cela empêche une affaire mineure de & quot; dogpile & quot; comportement qui autrement se produire lors d'un démarrage de charges lourdes. [Billet: 799]
  • _execute_clauseelement () remonte à être une méthode privée. Subclassing connexion ne est pas nécessaire maintenant que ConnectionProxy est disponible.
  • Documentation
  • Billets [billets: 1200] [billets: 1149].
  • Ajout d'une note sur les create_session () des valeurs par défaut.
  • Ajout d'une section sur les metadata.reflect ().
  • Mise à jour section `TypeDecorator`.
  • Réécriture de la & quot; ThreadLocal & quot; section sur la stratégie de la documentation en raison de récente confusion sur cette fonctionnalité.
  • Retiré mal à jour 'polymorphic_fetch »et docs' select_table» de l'héritage, retravaillé la seconde moitié du & quot; a rejoint l'héritage de table & quot;.
  • documentée `comparator_factory` kwarg, a ajouté nouvelle section doc & quot; personnalisé comparateurs & quot;.
  • MSSQL
  • Refonte les types Date / Heure. Le type de données `` smalldatetime`` ne tronque plus à une date uniquement et va maintenant être mappé sur le type MSSmallDateTime. [Billet: 1254]
  • Correction d'un problème avec des caractères numériques à accepter un int.
  • mappé `` char_length`` au () `fonction` `` LEN.
  • Si un `` INSERT`` comprend une sous-sélection du `` INSERT`` est converti à partir d'un `` INSERT INTO VALUES`` construire à un `` INSERT INTO SELECT`` construction.
  • Si la colonne fait partie d'un `` primary_key`` il sera `` PAS NULL`` depuis MSSQL ne permet pas `` NULL`` dans les colonnes PRIMARY_KEY.
  • `` MSBinary`` retourne maintenant un `` BINARY`` au lieu d'un `` IMAGE``. Ce est un changement vers l'arrière incompatible en ce qu '`` BINARY`` est un type de données de longueur fixe alors que `` IMAGE`` est un type de données de longueur variable. [Billet: 1249]
  • `` get_default_schema_name`` se reflète maintenant dans la base de données sur le schéma par défaut de l'utilisateur. Cela fonctionne uniquement avec MSSQL 2005 et plus tard. [Billet: 1258]
  • Ajout du support de classement grâce à l'utilisation d'un nouvel argument de classement. Ce est pris en charge sur les types suivants: char, nchar, varchar, nvarchar, text, ntext. [Billet: 1248]
  • Les modifications apportées aux paramètres de chaîne de connexion favorisent DSN que la spécification par défaut pour pyodbc. Voir la docstring de mssql.py pour obtenir des instructions d'utilisation détaillées.
  • Ajout du support expérimental de points de sauvegarde. Il ne fonctionne pas actuellement pleinement avec sessions.
  • Soutien à trois niveaux de la colonne nullité: NULL, NOT NULL, et configuré par défaut de la base de données. La configuration de la colonne par défaut (nullable = True) génère désormais NULL dans la DDL. Auparavant aucune spécification a été émis et le défaut de base de données prendrait effet (habituellement NULL, mais pas toujours). Pour demander explicitement le défaut de base de données, configurer les colonnes avec nullable = Aucun et aucune spécification sera émise dans DDL. Ce est un comportement incompatible arrière. [Billet: 1243]
  • postgres
  • & quot; & quot%; signes dans le texte () constructions sont automatiquement échappés & quot; %% & quot ;. En raison de la nature incompatible vers l'arrière de cette modification, un avertissement est émis si '%%' est détectée dans la chaîne. [Billet: 1267]
  • Appel alias.execute () en conjonction avec server_side_cursors ne sera pas augmenter AttributeError.
  • Indice Ajouté réflexion soutien aux Postgres, en utilisant un patch important que nous longtemps négligé, présenté par Ken Kuhlman. [Billet: 714]
  • oracle
  • ajusté le format de create_xid () pour réparer deux phases. Nous avons maintenant des rapports de terrain d'Oracle à deux phases de travail correctement avec ce changement.
  • Ajouté Type OracleNVarchar, produit NVARCHAR2, et sous-classes aussi Unicode sorte que convert_unicode = True par défaut. NVARCHAR2 reflète dans ce type automatiquement pour ces colonnes passent sur une table unicode réfléchie sans convert_unicode explicite = true drapeaux. [Billet: 1233]
  • Correction d'un bug qui empêchait les params de certains types d'être reçu; grâce à une tonne huddlej au wwu.edu! [Billet: 1265]
  • mysql
  • & quot; & quot%; signes dans le texte () constructions sont automatiquement échappés & quot; %% & quot ;. En raison de la nature incompatible arrière de ce changement, un avertissement est émis si '%%' est détecté dans la chaîne.
  • Correction d'un bug dans l'exception augmentation lorsque les colonnes FK pas présents lors de la réflexion. [Billet: 1241]
  • Correction d'un bug impliquant reflet d'une table distante avec un schéma-ref clé étrangère à une autre table dans ce schéma.
  • associationproxy
  • Les propriétés de proxy de l'association sont de se rendre disponibles au niveau de la classe, par exemple, MyClass.aproxy. Auparavant, ce évaluée à Aucun.
  • déclarative
  • La liste complète des arguments accepté comme chaîne par backref () comprend 'primaryjoin »,« secondaryjoin', ', FOREIGN_KEYS' 'secondaires', 'remote_side »,« order_by'.

Exigences :

  • Python

Logiciel similaire

TecUtils
TecUtils

20 Feb 15

MONyog
MONyog

17 Feb 15

DataVision
DataVision

3 Jun 15

Commentaires à SQLAlchemy

Commentaires non trouvées
Ajouter un commentaire
Tourner sur les images!