SQLAlchemy

Software captura de pantalla:
SQLAlchemy
Detalles de software:
Versión: 0.9.8
Fecha de carga: 17 Feb 15
Promotor: Michael Bayer
Licencia: Libre
Popularidad: 25

Rating: 5.0/5 (Total Votes: 1)

SQLAlchemy es un código abierto, independiente de la plataforma y el software gratuito de la biblioteca por escrito en el lenguaje de programación Python y diseñado desde cero para que actúe como una biblioteca de abstracción de base de datos, ORM (Object Relational Mapper) y kit de herramientas de SQL para Python.
Si usted y rsquo; re un desarrollador de Python, SQLAlchemy le dará la flexibilidad total y el poder de SQL, proporcionando una completa colección de patrones de persistencia populares a nivel de empresa, que han sido diseñados para access.Features de alto rendimiento y eficientes de bases de datos en un software glanceThe es extremadamente fácil de usar, lo suficientemente potente como para tareas sofisticadas y modular. Con SQLAlchemy usted será capaz de organizar a la espera de un mantenimiento, permite el uso de expresiones booleanas, funciones, operadores, alias de tabla, cláusulas UNION, correlacionado EXISTE cláusulas, crear, insertar, borrar y consultas de actualización, subconsultas seleccionables, actualizaciones correlacionadas, interior y combinaciones externas, y los parámetros de vinculación.
Además, puede ser utilizado para generar bases de datos, así como de inspeccionarlos, el apoyo a los objetos y colecciones de carga relacionada, el apoyo a la creación de persistencia transparente de objetos en función de los patrones, soporte para la manipulación y la construcción de modelos de dominio, así como soporte para la sincronización todos los cambios con la transacción actual automáticamente.
Entre otras características, podemos mencionar un sistema de consulta orientado relacional-que y rsquo; s capaz de exponer todas SQL y rsquo; s la funcionalidad, incluyendo la correlación, se une y subconsultas, una capa de interacción DBAPI, un sistema de construcción de SQL núcleo, una abstracción de base de datos independiente completa capa, soporte para metadatos extensible esquema de SQL, lenguaje de expresión, la agrupación de conexiones, tipos personalizados y coercion.Supports tipo una amplia variedad de Bases de Dato programa incluye dialectos de una amplia variedad de servidores y motores de bases de datos, incluyendo MySQL, PostgreSQL, Firebird, Oracle, Microsoft SQL Server, SQLite, Sybase, y muchos otros.
El proyecto es independiente de un sistema operativo, lo que significa que se puede implementar fácilmente y utilizarse en cualquier distribución de GNU / Linux, así como en el Microsoft Windows, BSD o sistemas operativos Mac OS X. Ambas arquitecturas de hardware de 32 bits y 64 bits son compatibles en este momento

¿Qué hay de nuevo en esta versión:.

  • orm:
  • [orm] [error] [motor] Corregido error que afectó en general a las mismas clases de evento como el de # 3199, cuando se utiliza el parámetro = Verdadero nombre. Algunos eventos no podrían registrarse, y otros no invocar los argumentos del evento correctamente, en general, en el caso de cuando un evento fue & quot; envuelto & quot; para la adaptación de alguna otra manera. El & quot; nombre & quot; mecánica se han reorganizado para no interferir con la firma argumento esperado por funciones de contenedor interno.
  • [orm] [error] Corregido error que afectó a muchas clases de evento, en particular eventos ORM, sino también eventos de motor, donde la lógica habitual de & quot; de la duplicación de & quot; una llamada redundante event.listen () con los mismos argumentos fallaría, para aquellos eventos en los que se envuelve la función de detector. Una afirmación sería golpeado dentro registry.py. Esta afirmación ha sido integrado en el cheque de deduplicación, con la ventaja añadida de un medio más simples de comprobación de la deduplicación en todos los ámbitos.
  • [orm] [error] alerta que emiten cuando una compleja primaryjoin autorreferencial contenía funciones, mientras que al mismo tiempo se ha especificado remote_side fijo; la advertencia podría sugerir el establecimiento de & quot; lado remoto & quot ;. Ahora sólo emite si remote_side no está presente.
  • declarativa orm:
  • [error] [declarativa] [orm] Fijo & quot; objeto 'NoneType' no tiene atributo "concreto" & quot; error cuando se utiliza AbstractConcreteBase en conjunción con una subclase que declara __abstract __.
  • motor:
  • [motor] [error] Las opciones de ejecución que se pasan a un motor ya sea a través de create_engine.execution_options o Engine.update_execution_options () no se pasan a la conexión especial que se utiliza para inicializar el dialecto en el & quot; primero conectar & quot; evento; dialectos suelen realizar sus propias consultas en esta fase, y ninguna de las opciones disponibles en la actualidad deben aplicarse aquí. En particular, el & quot; de confirmación automática & quot; opción estaba causando un intento de Autocommit dentro de esta inicial conectar lo que producirá un AttributeError debido al estado de no-estándar de la conexión.
  • [motor] [error] Las claves de cadena que se utilizan para determinar las columnas afectadas por un INSERT o UPDATE están ordenados cuando contribuyen hacia el & quot; compilado caché & quot; clave de caché. Estas teclas fueron previamente no determinista ordenados, es decir, la misma declaración podría ser almacenado en caché en múltiples ocasiones en las teclas equivalentes, con un costo en términos de memoria, así como el rendimiento.
  • sql:
  • [sql] [error] Corregido un fallo donde un buen número de elementos de SQL dentro del paquete sql dejaría de __repr __ () con éxito, debido a un atributo de descripción faltante que luego invocar a un desbordamiento de la recursividad cuando un AttributeError interna sería luego volver -invoke __repr __ ().
  • [sql] [error] un ajuste a la tabla / índice de reflexión de tal manera que si un índice reporta una columna que no se encuentra para estar presente en la mesa, una advertencia se emite y la columna se omite. Esto puede ocurrir en algunas situaciones especiales de las columnas del sistema como se ha observado con Oracle.
  • [sql] [error] Corregido un fallo en los CTE donde literal_binds argumento compilador no siempre puede ser propagado correctamente cuando uno CTE hace referencia a otro alias CTE en un comunicado.
  • [sql] [error] Fijo 0.9.7 regresión provocada por # 3067 junto con una prueba de unidad mal llamado de tal manera que la llamada & quot; esquema de & quot; tipos como Boole y Enum ya no podían ser encurtidos.
  • postgresql:
  • [postgresql] [función] [pg8000] Se agrega compatibilidad para & quot; fila múltiples cuerdo conteo & quot; con el conductor pg8000, que se aplica sobre todo al utilizar el control de versiones con el ORM. La característica es la versión detectada basado en pg8000 1.9.14 o superior en uso. Tire solicitud cortesía de Tony Locke.
  • [postgresql] [error] Un revisitar a este tema primero parcheado en 0.9.5, al parecer de acceso .closed de psycopg2 no es tan fiable como hemos supuesto, por lo que hemos añadido una comprobación explícita para los mensajes de excepción & quot; error SYSCALL SSL : descriptor de archivo Bad & quot; y & quot; error SYSCALL SSL: EOF detectado & quot; cuando la detección de un escenario es de desconexión. Vamos a seguir para consultar de psycopg2 connection.closed como primer cheque.
  • [postgresql] [error] Corregido un fallo donde tipo Postgresql JSON no fue capaz de persistir o de lo contrario hacer que un valor de columna NULL de SQL, en lugar de un codificado en JSON 'nulo'. Para apoyar este caso, los cambios son los siguientes:
  • El valor null () ahora se puede especificar, que siempre resultará en un valor NULL que resulta en el comunicado.
  • Un nuevo parámetro se añade JSON.none_as_null, que cuando True indica que el valor Ninguno Python debe peristed como SQL NULL, en lugar de codificado en JSON 'nulo'.
  • Retrival de NULL como Ninguno se reparó para DBAPIs distintos psycopg2, a saber pg8000.
  • [postgresql] [error] El sistema de atado excepción para errores DBAPI ahora pueden acomodar excepciones DBAPI no estándar, como el TransactionRollbackError psycopg2. Estas excepciones serán ahora levantados usando la subclase más cercano disponible en sqlalchemy.exc, en el caso de TransactionRollbackError, sqlalchemy.exc.OperationalError.
  • [postgresql] [error] Corregido error en el objeto postgresql.array en que la comparación a una lista Python llanura dejaría de utilizar el constructor de matrices correcta. Tire solicitud cortesía Andrew.
  • método [postgresql] [errores] Añadido un FunctionElement.alias soportados () para las funciones, por ejemplo, el constructo func. Anteriormente, el comportamiento de este método era indefinido. Las comportamiento imita actuales que de pre-0.9.4, que es que la función se convierte en una sola columna cláusula FROM con el nombre de alias dado, donde la propia columna se denomina de forma anónima.
  • mysql:
  • [mysql] [BUG] [mysqlconnector] Mysqlconnector partir de la versión 2.0, probablemente como un efecto secundario de la combinación de pitón 3, ahora no espera signos de porcentaje (por ejemplo, tal como se utiliza como el operador de módulo y otros) para ser duplicado, incluso cuando se utiliza el & quot; pyformat & quot; Formato de parámetro de límite (este cambio no está documentado por Mysqlconnector). El dialecto ahora comprueba py2k y para mysqlconnector menos de la versión 2.0 cuando se detecta si el operador módulo se dictarán como %% o%.
  • [mysql] [error] [mysqlconnector] Unicode SQL ahora se pasó para la versión MySQLconnector 2.0 y superior; para Py2k y MySQL & lt; 2.0, las cadenas están codificados.
  • sqlite:
  • [sqlite] [error] Cuando se selecciona a partir de una UNION utilizando un archivo de base de datos adjunta, los nombres de columna informes conductor pysqlite en cursor.description como 'dbname.tablename.colname', en lugar de 'tablename.colname' como lo hace normalmente Por una Unión (tenga en cuenta que se supone que debe ser sólo 'nombrecol' para ambos, pero trabajamos alrededor de ella). La lógica de traducción de la columna de aquí se ha ajustado para recuperar el token de más a la derecha, en lugar de la segunda manera, por lo que funciona en ambos casos. Cortesía Solución Tony Roberts.
  • mssql:
  • [mssql] [error] Fija la detección cadena de versión en el dialecto pymssql para trabajar con Microsoft SQL Azure, que cambia la palabra & quot; SQL Server & quot; & quot; SQL Azure & quot;.
  • oráculo:
  • [oracle] [error] fija de larga data bug en Oracle dialecto donde no se citan los nombres de parámetros ligados que comenzaron con los números, ya que Oracle no le gusta numéricos en los nombres de parámetros ligados.
  • misc:
  • [error] [declarativa] fija una condición de carrera poco probable observado en algunas configuraciones de usuario final exóticos, donde el intento para comprobar si hay & quot; duplicadas nombre de la clase & quot; en declarativa golpearía a una referencia débil no-totalmente-limpiada relacionada con alguna otra clase de ser eliminado; el cheque aquí ahora asegura la weakref todavía referencia a un objeto antes de llamar aún más en ella.
  • [error] [ext] Corregido error en la lista donde el orden de los elementos sería arrojado fuera durante una colección reemplazar caso, si la bandera reorder_on_append se establece en True pedido. La solución asegura que la lista de pedidos sólo impacta la lista que se asocia de forma explícita con el objeto.
  • [error] [ext] Corregido un fallo donde ext.mutable.MutableDict no aplicó el método update () diccionario, por lo tanto no la captura de cambios. Tire solicitud cortesía Matt Chisholm.
  • [error] [ext] Corregido un fallo donde una subclase personalizada de ext.mutable.MutableDict no aparecería en un & quot; coaccionar & quot; operación, y que en su lugar devolver un ext.mutable.MutableDict llanura. Tire solicitud cortesía Matt Chisholm.
  • [error] [piscina] Corregido error en el registro de agrupación de conexiones donde el & quot; conexión desprotegido & quot; mensaje de registro de depuración no emitiría si el registro se crearon usando logging.setLevel (), en lugar de utilizar la bandera echo_pool. Se han añadido las pruebas para hacer valer este registro. Esto es una regresión que se introdujo en 0.9.0.

¿Qué hay de nuevo en la versión 0.5.0:

  • nuevas características
  • General
  • Documentación se ha convertido a la Esfinge. En particular, la documentación de la API generada se ha construido en un completo soplado y quot; Referencia de la API & quot; sección que organiza la documentación editorial combinado con docstrings generados. El entrecruzamiento entre las secciones y documentos de la API han mejorado considerablemente, una función de búsqueda javascript alimentado se proporciona, y se proporciona un índice completo de todas las clases, funciones y miembros.
  • setup.py ahora importa setuptools sólo opcionalmente. Si no está presente, se utiliza distutils. El nuevo & quot; pip & quot; instalador se recomienda sobre easy_install ya que se instala de una manera más simplificada.
  • añade una ilustración muy básica de una integración PostGIS a la carpeta de ejemplos.
  • orm
  • Query.with_polymorphic () ahora acepta un tercer argumento & quot; discriminador & quot; que sustituirá el valor de mapper.polymorphic_on para esa consulta. Mappers sí mismos ya no requieren polymorphic_on a ser establecido, incluso si el asignador tiene un polymorphic_identity. Cuando no se establece, el asignador cargará no polimórficamente por defecto. Juntas, estas dos características permiten una configuración de herencia hormigón no polimórfica de usar carga polimórficos sobre una base por consulta, ya que las configuraciones concretas son propensos a muchas cuestiones cuando se utiliza polimórficamente en todos los casos.
  • dynamic_loader acepta una query_class = para personalizar las clases de consulta utilizados tanto para la colección dinámica y las consultas construidas a partir de ella.
  • query.order_by () acepta Ninguno que eliminará cualquier estado order_by pendiente de la consulta, así como cancelar cualquier mapper / relación de orden configurado. Esto se debe principalmente útiles para sobrescribir el orden especificado en un dynamic_loader (). [Billete: 1079]
  • SQL

  • Objetos
  • RowProxy se pueden utilizar en lugar de argumentos Diccionario enviados a Connection.Execute () y amigos. [Boleto: 935]
  • dialecto
  • Ha añadido un nuevo atributo description_encoding en el dialecto que se usa para codificar el nombre de la columna en el tratamiento de los metadatos. Esto por lo general por defecto es utf-8.
  • mssql
  • Añadido de un nuevo tipo MSGenericBinary. Se correlaciona con el tipo binario para que pueda implementar el comportamiento especializado de tratamiento de diferentes tipos de longitud especificada como tipos binarios de ancho fijo y tipos no-longitud como una longitud variable de tipo binario no unido.
  • Alta en nuevos tipos: MSVarBinary y MSImage. [Billete: 1249]
  • Añadido en el MSReal, MSNText, MSSmallDateTime, MSTime, MSDateTimeOffset y tipos MSDateTime2
  • sqlite
  • Tabla reflexión ahora almacena el valor defaultClause real para la columna. [Billete: 1266]
  • correcciones de errores, cambios de comportamiento
  • General
  • orm
  • Las excepciones planteadas durante compile_mappers () actualmente se conservan para proporcionar & quot; el comportamiento pegajoso & quot;
  • si un hasattr () llamada en un atributo pre-compilado asignada provoca un fallo de compilación y suprime la excepción, la posterior compilación se bloquea y la excepción se reiteró en la próxima compilación () llamada. Este problema se produce con frecuencia cuando se utiliza declarativa.
  • property.of_type () ahora se reconoce en un objetivo de una sola mesa heredar, cuando se utiliza en el contexto de prop.of_type (..). Cualquier () / tiene (), así como query.join (prop. of_type (...)).
  • query.join () genera un error cuando el objetivo de la combinación no coincidir con el atributo basado en la propiedad
  • , mientras que es poco probable que alguien está haciendo esto, el autor SQLAlchemy era culpable de este comportamiento afloja-goosey particular.
  • Solución de error al usar weak_instance_map = False donde los eventos modificados no serían interceptados por un flush (). [Billete: 1272]
  • Se han solucionado algunos profunda & quot; la correspondencia columna & quot; cuestiones que podrían afectar una consulta formulada contra un seleccionable que contiene varias versiones de la misma mesa, así como los sindicatos y los similares que contenían las mismas columnas de tabla en diferentes posiciones de las columnas en los diferentes niveles. [Billete: 1268]
  • clases de comparación personalizados utilizados con column_property (), relación (), etc. pueden definir nuevos métodos de comparación en el comparador, que estarán disponibles a través de __getattr __ () en el InstrumentedAttribute. En el caso de sinónimo () o comparable_property (), los atributos se resuelven primero en el descriptor definido por el usuario, a continuación, en el comparador definido por el usuario.
  • Agregado ScopedSession.is_active de acceso. [Boleto: 976]
  • Puede pasar atributos correlacionados y objetos de columnas como claves para query.update ({}). [Billete: 1262]
  • atributos asignadas pasados ​​a los valores () de un inserto nivel de expresión () o update () utilizará las llaves de las columnas asignadas, no la del atributo asignado.
  • Se ha corregido un problema con Query.delete () y Query.update () no funciona correctamente con los parámetros de vinculación. [Billete: 1242]
  • Query.select_from (), from_statement () garantizar que el argumento dado es un FromClause o Texto / Seleccionar / Unión, respectivamente.
  • Query () se puede pasar a & quot; compuesta & quot; atributo como una expresión de columna y se ampliará. Algo relacionado con [billete: 1253].
  • query () es un poco más robusto cuando se pasa varias expresiones de columna como cuerdas, clauselists, texto () construcciones (lo que puede significar que sólo genera un error más bien).
  • primero () funciona como se esperaba con Query.from_statement ().
  • Solución de error introducido en 0.5rc4 participación carga ansiosa no funciona para las propiedades que se añadieron a un mapeador post-compilación usando add_property () o equivalente.
  • Corregido un fallo donde muchos-a-muchos relación () con VIEWONLY = True no referenciar correctamente la relación entre la secundaria- & gt;. Remoto
  • elementos duplicados en una colección basada en la lista se mantendrán al emitir INSERT a una & quot; & quot secundaria; mesa en una relación de muchos a muchos. Suponiendo que la tabla m2m tiene una restricción de clave única o primaria en él, esto elevará la violación de restricción esperado en lugar de caer en silencio las entradas duplicadas. Tenga en cuenta que el comportamiento anterior se mantiene para una relación de uno a muchos desde entradas de la colección en ese caso no resultan en sentencias INSERT y SQLA no manualmente colecciones de policía. [Billete: 1232]
  • Query.add_column () puede aceptar objetos FromClause en la misma manera que session.query () puede.
  • La comparación de muchos-a-uno relación a NULL se convierte adecuadamente a IS NOT NULL en base a no _ ().
  • comprobaciones adicionales añadidos para garantizar explícita primaryjoin / secondaryjoin son instancias ClauseElement, para evitar los errores más confusos después. [Billete: 1087]
  • Mejora mapeador () para comprobar las clases no de clase. [Billete: 1236]
  • argumento comparator_factory está documentado y apoyado por todos los tipos MapperProperty, incluyendo column_property (), relación (), backref (), y sinónimo () [billete: 5051].
  • Se ha cambiado el nombre de PropertyLoader a RelationProperty, para ser coherente con el resto de nombres. PropertyLoader sigue presente como sinónimo.
  • fijo & quot; doble iter () & quot; llamada provoque errores en API fragmento, eliminado result.close errante () sobrante de la versión 0.4. [Billete: 1099] [billete: 1228]
  • cascadas Session.merge hechos no desencadenan autoflush. Corrige fusionó casos consiguiendo prematuramente insertan con valores perdidos.
  • Dos arreglos para ayudar a prevenir las columnas fuera de la banda de ser dictada en los escenarios de herencia polymorphic_union (lo cual les provoca mesas adicionales para ser prestados en la cláusula FROM que causan los productos cartesianos):
  • mejoras a & quot; adaptación columna & quot; para a- & gt; b- & gt;. c situaciones de herencia para localizar mejor las columnas que están relacionados entre sí a través de múltiples niveles de indirección, en lugar de hacer que la columna no adaptado
  • & quot; discriminador polimórfica & quot; columna sólo se hace para el asignador real que se consulta en contra. La columna no será & quot; tirado en & quot; de una subclase o asignador superclase, ya que no es necesario.
  • argumento shard_id fijo en ShardedSession.execute (). [Billete: 1072]
  • SQL
  • Las columnas pueden contener más signos de porcentaje dentro de sus nombres. [Billete: 1256]
  • sqlalchemy.sql.expression.Function es ahora una clase pública. Puede ser una subclase para proporcionar funciones SQL definidas por el usuario en un estilo imperativo, incluso con comportamientos preestablecidos. El ejemplo ilustra una postgis.py uso de este.
  • PickleType ahora favorece la comparación == por defecto, si el objeto de entrada (como un dict) implementa __ __eq (). Si el objeto no implementa __ __eq () y mutable = True, una advertencia desaprobación se elevó.
  • Fija la rareza de importación en sqlalchemy.sql a no exportar __names__. [Billete: 1215]
  • Con el mismo objeto ForeignKey repetidamente genera un error en lugar de silencio no más tarde. [Billete: 1238]
  • método Agregado NotImplementedError para params () en Insertar / Actualizar / Eliminar construcciones. Estos artículos actualmente no soportan esta funcionalidad, que también sería un poco engañoso en comparación con los valores de ().
  • claves externas reflejadas encaja debidamente su columna referenciada, incluso si la columna se le dio a & quot; & quot; atribuir diferente del nombre reflejada. Esto se logra a través de una nueva bandera en ForeignKey / ForeignKeyConstraint llamado & quot; & quot ;, link_to_name si es verdadero significa el nombre dado es el no su tecla asignada hace referencia a el nombre de la columna,. [Boleto: 650]
  • select () puede aceptar una ClauseList como una columna en la misma forma que una mesa u otra seleccionable y las expresiones interiores serán utilizados como elementos de las columnas. [Billete: 1253]
  • & quot; & quot pasiva; bandera en session.is_modified () se propaga correctamente a la gerente de atributo.
  • union () y union_all () no golpear cualquier order_by () que se ha aplicado a la selección () s en el interior. Si la unión () un select () con order_by () (presumiblemente para apoyar LIMIT / OFFSET), también debe llamar self_group () sobre ella para aplicar paréntesis.
  • Motor / piscina
  • Connection.invalidate () comprueba si el estado cerrado para evitar errores de atributos. [Billete: 1246]
  • NullPool apoya a conectar en el comportamiento fracaso. [Billete: 1094]
  • Ha añadido un mutex para la creación de la piscina inicial al utilizar pool.manage (dbapi). Esto evita que un caso menor de & quot; dogpile & quot; comportamiento que de otro modo ocurrir en un arranque de carga pesada. [Boleto: 799]
  • _execute_clauseelement () vuelve a ser un método privado. Conexión Subclassing no es necesaria ahora que ConnectionProxy está disponible.
  • documentación
  • Las entradas [entradas: 1200] [entradas: 1149].
  • Se agregó una nota sobre create_session () por defecto.
  • Se agregó una sección sobre metadata.reflect ().
  • Actualizado sección TypeDecorator` `.
  • Reescribir la & quot; ThreadLocal & quot; sección de estrategia de la documentación debido a la reciente confusión sobre esta característica.
  • Eliminada mal fuera de fecha 'polymorphic_fetch' y docs 'select_table' de herencia, volvió a trabajar el segundo semestre de & quot; se unió a la herencia de tablas & quot;.
  • documentada `comparator_factory` kwarg, agregó nueva sección doc & quot; Custom comparadores & quot;.
  • mssql
  • refactorizado los tipos de fecha / hora. El tipo de datos `` smalldatetime`` ya no trunca a sólo una fecha, y ahora se asigna al tipo MSSmallDateTime. [Billete: 1254]
  • Se ha corregido un problema con los numéricos para aceptar un int.
  • asignado a `` char_length`` a la función `` `LEN ()`.
  • Si un `` INSERT`` incluye una subselección la `` INSERT`` se convierte de una `` INSERT INTO VALUES`` construir a un `` INSERT INTO constructo SELECT``.
  • Si la columna es parte de una `` primary_key`` será `` NO null`` desde MSSQL no permite `` NULL`` en columnas PRIMARY_KEY.
  • `` MSBinary`` ahora devuelve un `` BINARY`` en lugar de un `` IMAGE``. Este es un cambio hacia atrás incompatibles en que `` BINARY`` es un tipo de datos de longitud fija, mientras que `` IMAGE`` es un tipo de datos de longitud variable. [Billete: 1249]
  • `` get_default_schema_name`` se refleja ahora en la base de datos basado en el esquema predeterminado del usuario. Esto sólo funciona con MSSQL 2005 y después. [Billete: 1258]
  • Soporte cotejo Añadido mediante el uso de un nuevo argumento de colación. Esto se sustenta en los siguientes tipos: char, nchar, varchar, nvarchar, texto, ntext. [Billete: 1248]
  • Los cambios en los parámetros de cadena de conexión favorecen DSN como la especificación predeterminada para pyodbc. Ver la cadena de documentación mssql.py para obtener instrucciones detalladas de uso.
  • Añadido soporte experimental de puntos de rescate. En la actualidad no funciona plenamente con las sesiones.
  • Soporte para tres niveles de capacidad de nulos columna: NULL, NOT NULL, y configurado por defecto de la base de datos. La configuración por defecto Columna (anulable = True) ahora generará NULL en el DDL. Anteriormente ninguna especificación fue emitida y la base de datos predeterminada entraría en vigor (por lo general NULL, pero no siempre). Para solicitar explícitamente la base de datos predeterminada, configurar columnas con anulable = None y sin especificación se emitirá en DDL. Esto es al revés comportamiento incompatible. [Billete: 1243]
  • postgres
  • & quot;% & quot; signos en el texto () construcciones son escapados automáticamente a & quot; %% & quot ;. Debido a la naturaleza incompatible hacia atrás de este cambio, una advertencia se emite si se detecta '%%' en la cadena. [Billete: 1267]
  • Llamando alias.execute () junto con server_side_cursors no elevará AttributeError.
  • Índice Agregado de soporte reflexión para Postgres, utilizando un gran parche que durante mucho tiempo descuidadas, presentado por Ken Kuhlman. [Boleto: 714]
  • oracle
  • Se ha ajustado el formato de create_xid () para reparar en dos fases. Ahora tenemos informes de campo de Oracle confirmación en dos fases de funcionar correctamente con este cambio.
  • Agregado tipo OracleNVarchar, produce NVARCHAR2, y también subclases Unicode para que convert_unicode = true de forma predeterminada. NVARCHAR2 refleja en este tipo de forma automática para estas columnas pasan Unicode en una mesa reflejada sin convert_unicode explícita = Verdaderos banderas. [Billete: 1233]
  • Corregido error que impedía a cabo params de determinadas formas de ser recibido; gracias una tonelada de huddlej en wwu.edu! [Billete: 1265]
  • mysql
  • & quot;% & quot; signos en el texto () construcciones son escapados automáticamente a & quot; %% & quot ;. Debido a la naturaleza incompatible hacia atrás de este cambio, una advertencia se emite si se detecta '%%' en la cadena.
  • Solución de error en aumento excepción cuando columnas FK no presentan durante la reflexión. [Billete: 1241]
  • Solución de error que implica la reflexión de un esquema-tabla remota con una ref clave externa a otra tabla en ese esquema.
  • associationproxy
  • Las propiedades de proxy asociación son estar disponibles a nivel de clase, por ejemplo, MyClass.aproxy. Anteriormente esta evaluada en Ninguno.
  • declarativa
  • La lista completa de los argumentos aceptados como cadena por backref () incluye 'primaryjoin', 'secondaryjoin',, 'FOREIGN_KEYS' 'secundarios', 'remote_side', 'order_by'.

Requisitos :

  • Python

Programas parecidos

Elephantoplasty
Elephantoplasty

14 Apr 15

ZODB3
ZODB3

15 Apr 15

micromongo
micromongo

14 Apr 15

Comentarios a la SQLAlchemy

Comentarios que no se encuentran
Añadir comentario
A su vez en las imágenes!