SQLAlchemy jest open source, niezależny od platformy i wolne oprogramowanie biblioteki napisane w języku programowania Python i zaprojektowane od podstaw, aby działać jako biblioteki abstrakcji bazy danych, ORM (Object Relational Mapper) i SQL narzędzi dla Pythona.
Jeśli & rsquo; re dewelopera Python, SQLAlchemy daje pełną elastyczność i moc SQL, zapewniając pełną kolekcję wzorów utrwalania popularne na poziomie przedsiębiorstwa, które zostały zaprojektowane dla wysokiej wydajności i wydajnych access.Features baz danych w oprogramowaniu glanceThe Jest bardzo łatwy w użyciu, wystarczająco silny dla zaawansowanych zadań i modułowych. Z SQLAlchemy będzie można zorganizować czasu operacji CRUD, umożliwia korzystanie z wyrażeń logicznych, funkcji, operatorów, aliasów tabel, klauzule UNII, skorelowane ISTNIEJE klauzule, tworzenia, dodawania, usuwania i aktualizacji, wyboru zapytania podzapytania, skorelowane aktualizacje, wewnętrzne i sprzężenia zewnętrzne i parametry wiązania.
Dodatkowo, może być używany do generowania baz danych, a także ich introspekcji, wsparcie dla obiektów związanych załadunku i zbiorów, wsparcie dla tworzenia przejrzystych trwałość obiektów na podstawie wzorów, wsparcie dla manipulowania i konstruowanie modeli domen, jak również wsparcie dla synchronizacji wszystkie zmiany w bieżącej transakcji automatycznie.
Wśród innych funkcji warto wspomnieć relacyjnie-zorientowanego systemu zapytania, że & rsquo; s, które mogą narażać wszystkich SQL & rsquo; s funkcjonalność, w tym korelacji, łączy i podzapytania, warstwę interakcji DBAPI, podstawowy system konstrukcji SQL, kompletny, samodzielny abstrakcji bazy danych Warstwa, wsparcie dla SQL Extensible Metadata schematu, język wypowiedzi, puli połączeń, niestandardowych i typu coercion.Supports różnorodność databasesThe programu obejmuje dialektów dla wielu różnych serwerów baz danych i silników, MySQL, PostgreSQL, Firebird, Oracle, Microsoft SQL Server, SQLite, Sybase, i wiele innych.
Projekt jest niezależny od systemu operacyjnego, co oznacza, że może być łatwo stosowane i używane w każdej dystrybucji GNU / Linux, jak również w systemie Microsoft Windows, BSD lub systemów operacyjnych Mac OS X. Zarówno 32-bitowych i 64-bitowych architektur sprzętowych są obsługiwane w tej chwili
Co nowego w tym wydaniu:.
- orm:
- [orm] [bug] [silnik] Naprawiono błąd, który wpływa na ogół te same klasy zdarzenia jak w # 3199, kiedy nazwał = True parametr byłyby wykorzystywane. Niektóre wydarzenia nie uda się zarejestrować, a inni nie powoływać się na argumenty zdarzeń poprawnie, zazwyczaj w przypadku, gdy zdarzenie było & quot; owinięte & quot; dla dostosowania w jakiś inny sposób. Quot i; o nazwie & quot; Mechanika zostały uporządkowane, aby nie kolidować z podpisem argumentów oczekiwanych przez wrappery wewnętrznych.
- [orm] [Błąd] Naprawiono błąd, który wpłynął na wiele klas imprezy, szczególnie ORM wydarzenia, ale także wydarzenia silnika, gdy zwykła logika & quot; de powielania & quot; zbędne wywołanie event.listen () z tymi samymi argumentami nie powiedzie, na tych imprezach, gdzie funkcja detektora jest zawinięte. Twierdzenie byłoby trafić w ciągu registry.py. To twierdzenie jest teraz zintegrowany z kontroli deduplikacji, z dodatkowy bonus prostszy sposób sprawdzenia deduplikacji całej planszy.
- [orm] [Błąd] Poprawiono ostrzeżenie, że będzie emitować, gdy złożona samozwrotnych primaryjoin zawierała funkcje, podczas gdy w tym samym czasie remote_side został określony; Ostrzeżenie sugeruje ustawienie & quot; & quot zdalnego strony ;. Teraz tylko emituje jeśli remote_side nie jest obecny.
- orm deklaratywny:
- [bug] [deklaratywny] [orm] Naprawiono & quot; obiektu "NoneType 'nie ma atrybutu" beton "& quot; Błąd podczas korzystania AbstractConcreteBase w połączeniu z podklasy, który deklaruje __abstract __.
- Silnik:
- [Silnik] [Błąd] Opcje wykonawcze przekazywane do silnika albo poprzez create_engine.execution_options lub Engine.update_execution_options () nie są przekazywane do specjalnego połączenia używanego do inicjalizacji dialektu w ramach & quot; najpierw podłączyć & quot; Impreza; dialekty zwykle wykonywać swoje pytania w tej fazie, a nikt z obecnych dostępnych opcji należy zastosować tutaj. W szczególności cali do AutoCommit cali do Opcja było przyczyną próbę AutoCommit w tym inicjałem podłączyć które nie z AttributeError spowodowane niestandardowym stanie połączenia.
- [Silnik] [Błąd] Klucze łańcuchowe, które są używane do określenia kolumn miały wpływ na INSERT lub UPDATE są obecnie klasyfikowane, gdy przyczyniają się do & quot; skompilowany cache & quot; Klucz cache. Klucze te nie były wcześniej deterministically sortowane, co oznacza takie samo zestawienie może być buforowane wielokrotnie na odpowiednich kluczy, kosztując, zarówno pod względem pamięci, jak również wydajność.
- sql:
- [sql] [Błąd] Naprawiono błąd, gdzie spora liczba elementów SQL wewnątrz pakietu SQL nie doprowadzi do __repr __ (), z powodzeniem, ze względu na brakujący atrybut opis, który następnie powoływać przepełnienie rekurencji, gdy wewnętrzna AttributeError by następnie ponownie -invoke __repr __ ().
- [sql] [Błąd] korekta tabeli indeksu refleksji / takie, że jeśli wskaźnik informuje, kolumny, którego nie ma być obecny w tabeli, jest emitowany ostrzegawczy i kolumna jest pomijany. Może to nastąpić w niektórych szczególnych sytuacjach, jak w kolumnie System zaobserwowano z Oracle.
- [sql] [Błąd] Naprawiono błąd w WRC, gdzie literal_binds argumentu kompilator nie zawsze poprawnie propagowane gdy CTE, o których mowa innym aliasowanego CTE w oświadczeniu.
- [sql] [Błąd] Naprawiono 0.9.7 regres spowodowany # 3067 w połączeniu z testów jednostkowych mis-nazwany tak, że tzw & quot; schematu & quot; typy jak Boolean i Enum nie można już marynowane.
- PostgreSQL:
- [PostgreSQL] [funkcja] [pg8000] Dodano obsługę & quot; zdrowy wielu wiersz liczba & quot; z kierowcą pg8000, które stosuje się głównie w przypadku korzystania z ORM wersjonowanie. Funkcja jest wersja wykryta na podstawie pg8000 9.1.14 lub wyższej w użyciu. Pociągnij żądania uprzejmości Tony Locke.
- [PostgreSQL] [Błąd] powrócić do tej kwestii w pierwszym patchem 0.9.5, najwyraźniej psycopg2 za .closed dostępowe nie jest tak wiarygodne, jak zakładaliśmy, więc dodaliśmy wyraźne czek na wiadomości wyjątków & quot; Błąd wywołania systemowego SSL : Bad deskryptor pliku & quot; i & quot; Błąd wywołania systemowego SSL: EOF wykryte & quot; przy wykryciu scenariusz jest odłącznik. Będziemy kontynuować konsultacje psycopg2 za connection.closed jako pierwszej kontroli.
- [PostgreSQL] [Błąd] Naprawiono błąd, gdzie typ PostgreSQL JSON, nie był w stanie utrzymywać się lub w inny sposób czyni wartość kolumny SQL NULL, a nie kodowane JSON "zerowy". W celu wsparcia tego sprawę, zmiany są następujące:
- wartość null () można teraz określić, które zawsze powoduje wartości NULL w wyniku rachunku.
- nowy parametr JSON.none_as_null dodaje, która, gdy Prawda wskazuje, że brak wartości Python należy peristed jak SQL NULL, a nie JSON zakodowane "zerowy".
- Retrival NULL jako Brak jest również naprawiony przez DBAPIs innych niż psycopg2, mianowicie pg8000.
- [PostgreSQL] [Błąd] System owijania wyjątkiem błędów DBAPI obecnie może pomieścić niestandardowe wyjątki DBAPI, takich jak TransactionRollbackError psycopg2. Te wyjątki zostanie podniesiona przy najbliższy dostępne podklasy w sqlalchemy.exc, w przypadku TransactionRollbackError, sqlalchemy.exc.OperationalError.
- [PostgreSQL] [Błąd] Naprawiono błąd w postgresql.array obiekt, w którym porównanie do zwykłej listy Python nie uda się używać odpowiedniego konstruktora Array. Pociągnij żądania uprzejmości Andrew.
- Metoda [PostgreSQL] [bug] dodała wspierane FunctionElement.alias () do funkcji, np Konstrukt func. Wcześniej zachowanie dla tej metody jest niezdefiniowane. Obecne naśladuje zachowanie, że pre-0.9.4, który jest, że funkcja jest włączona w jednej kolumnie klauzuli FROM z danym aliasem, gdzie sama kolumna jest anonimowo nazwie.
- mysql
- [mysql] [bug] [mysqlconnector] Mysqlconnector od wersji 2.0, prawdopodobnie jako efekt uboczny python 3 seryjnej, teraz nie oczekuje znaków procentu (np jak stosowany jako operator modułu i inne) należy podwoić, nawet w przypadku korzystania z & quot; pyformat & quot; związany Format parametrów (zmiana ta nie jest udokumentowane przez Mysqlconnector). Dialekt sprawdza teraz py2k i mysqlconnector mniej niż 2.0 momencie wykrycia, jeśli operator moduł powinien być renderowane jako %% lub%.
- [mysql] [bug] [mysqlconnector] SQL Unicode jest teraz przekazane do wersji 2.0 i wyżej MySQLconnector; dla Py2k i MySQL & lt; 2.0, łańcuchy są kodowane.
- sqlite:
- [sqlite] [Błąd] Po wybraniu z UNII za pomocą załączonego pliku bazy danych, nazwy kolumn raporty kierowców pysqlite w cursor.description jako "dbname.tablename.colname ', zamiast' tablename.colname" jak zwykle dla UNII (zauważ, że to ma być tylko "colname" dla obu, ale obejść). Logika Tłumaczenie kolumna tutaj został dostosowany do pobierania skrajną prawą żeton, a nie drugi żeton, więc to działa w obu przypadkach. Tony Roberts obejście uprzejmości.
- MSSQL:
- [MSSQL] [Błąd] Naprawiono wykrywanie wersji ciągu w pymssql dialekcie do pracy z Microsoft SQL Azure, która zmienia słowo & quot; SQL Server & quot; & quot; SQL Azure & quot;.
- oracle:
- [oracle] [Błąd] Naprawiono dawna błąd w Oracle dialekcie, gdzie nie będzie cytowany związane nazwy parametrów, które rozpoczęły się liczbami, jak Oracle nie podoba numeryczne w związanych nazw parametrów.
- misc:
- [bug] [deklaratywny] Stała się mało sytuacji wyścigu obserwowane w niektórych egzotycznych ustawień użytkownika końcowego, w którym próba sprawdzają & quot; powielają klasy nazwę & quot; w deklaratywnej by wpadł na nie-zupełnie-oczyszczonego słabego odniesienia związanego z inna klasa usuwane; Kontrola zapewnia tu teraz weakref wciąż odwołuje się do obiektu przed wzywając je dalej.
- [bug] [ext] Naprawiono błąd w listę, gdzie kolejność elementów będzie wyrzucony podczas zbierania zastąpić zdarzenie, jeśli flaga reorder_on_append były ustawione na True zamawiania. Poprawka zapewnia, że lista zamawianie tylko wpływ na liście, która jest wyraźnie związane z obiektem.
- [bug] [ext] Naprawiono błąd, gdzie ext.mutable.MutableDict nie wykonała update () metody słownika, zatem nie łapania zmian. Wyciągnij wniosek uprzejmości Matt Chisholm.
- [bug] [ext] Naprawiono błąd, gdzie zwyczaj podklasą ext.mutable.MutableDict nie pokazać się w & quot; zmusić & quot; praca, i zamiast wrócić zwykły ext.mutable.MutableDict. Wyciągnij wniosek uprzejmości Matt Chisholm.
- [bug] [pool] Naprawiono błąd w logowaniu puli połączeń, gdzie quot i; połączenie wyrejestrowany & quot; rejestrowanie debugowania komunikat nie emitują jeśli ustawiono rejestrowanie przy użyciu logging.setLevel (), a nie z flagą echo_pool. Testy do dochodzenia tego rejestrowanie zostały dodane. To jest regresja, że został wprowadzony w 0.9.0.
Co nowego w wersji 0.5.0:
- Nowe funkcje
- Ogólnie
- Dokumentacja został przerobiony na Sfinksa. W szczególności generowana dokumentacja API została skonstruowana w pełnowartościowy cali do API Reference cali do Sekcja dokumentacji redakcyjną, która organizuje w połączeniu z generowanych docstrings. Sieciowanie między sekcjami i API docs są znacznie lepsze, funkcja wyszukiwania javascript zasilany jest i pełen spis wszystkich klas, funkcji i członków jest.
- setup.py teraz importuje setuptools tylko opcjonalnie. Jeśli nie ma, jest używany distutils. Nowej & quot; pip & quot; Instalator jest zalecane przez easy_install jak instaluje w bardziej uproszczony sposób.
- dodaje bardzo podstawowe ilustracja integracji PostGIS do folderu przykładów.
- orm
- Query.with_polymorphic () przyjmuje trzeci argument & quot; dyskryminator & quot; która zastąpi wartość mapper.polymorphic_on dla tego zapytania. Odwzorowujące sami nie wymagają polymorphic_on być ustawione, nawet jeśli mapowanie ma polymorphic_identity. Gdy nie jest ustawiona, mapper załaduje non-polimorficznie domyślnie. Razem te dwie funkcje pozwalają nie polimorficzny konfiguracji betonu dziedziczenie używać polimorficzny załadunku na podstawie na zapytania, ponieważ konkretne konfiguracje są podatne na wiele problemów przy stosowaniu polimorficznie we wszystkich przypadkach.
- dynamic_loader akceptuje query_class = dostosowanie klas zapytań używane zarówno do dynamicznego pobierania i zapytań zbudowanych z nim.
- query.order_by () akceptuje Brak które usunie wszystkie oczekujące stan order_by z zapytania, a także przekreśla wszelkie mapper / stosunku skonfigurowany zamówienia. Jest to przede wszystkim przydatne dla nadrzędnych kolejność określoną w dynamic_loader (). [Bilet: 1079]
- sql
- RowProxy mogą być stosowane w miejsce argumentów słownikowych przesłanych connection.execute () i. [Biletów: 935]
- dialekt
- Dodano nowy atrybut description_encoding w dialekcie, który jest używany do kodowania nazwę kolumny podczas przetwarzania metadane. To zazwyczaj domyślnie UTF-8.
- MSSQL
- Dodane w nowego typu MSGenericBinary. Mapy to do Binary typu więc może realizować specjalistyczne zachowanie leczenia rodzaje długości określona jako stałej szerokości typów i rodzajów binarnych nie długości jako zmiennej długości typu niezwiązanego Binary.
- Dodane w nowych typach: MSVarBinary i MSImage. [Bilet: 1249]
- Dodane w MSReal, MSNText, MSSmallDateTime, MSTime, MSDateTimeOffset i typów MSDateTime2
- sqlite
- odbicie Tabela przechowuje teraz rzeczywistą wartość DefaultClause dla kolumny. [Bilet: 1266]
- poprawki, zmiany zachowania,
- Ogólnie
- orm
- Wyjątki poruszone podczas compile_mappers () są obecnie zachowane w celu zapewnienia & quot; lepki zachowanie & quot;
- jeśli hasattr () połączenia na wcześniej skompilowany odwzorowanym atrybutu powoduje upadających skompilować i tłumi wyjątek, kolejna kompilacja jest zablokowane, a wyjątki są powtórzył na następnej kompilacji () połączeń. Ten problem pojawia się często podczas korzystania deklaratywny.
- property.of_type () jest obecnie uznawana na pojedynczej tabeli dziedziczenie cel, gdy jest stosowany w kontekście prop.of_type (..). Dowolny () / ma (), jak również query.join (prop. of_type (...)).
- query.join () zgłasza błąd, gdy celem przyłączenia nie odpowiada atrybut nieruchomości oparte
- , gdy jest mało prawdopodobne, ktoś to robi, autor SQLAlchemy był winny tego konkretnego zachowania Loosey-Goosey.
- Naprawiono błąd podczas korzystania weak_instance_map = False gdzie zmodyfikowane wydarzenia nie będą przechwycone przez flush (). [Bilet: 1272]
- Poprawiono niektóre głębokie & quot; kolumna korespondencji & quot; Problemy, które mogą mieć wpływ kwerendy wykonane przed wybierane zawierającej wiele wersji tej samej tabeli, a także związki zawodowe i podobne, które zawierały te same kolumny tabeli w różnych pozycjach kolumny na różnych poziomach. [Bilet: 1268]
- Własne klasy porównawcze stosowane w połączeniu z column_property (), zależność () itd. Można zdefiniować nowe metody porównawcze na komparatora, które staną się dostępne poprzez __getattr __ () na InstrumentedAttribute. W przypadku synonim () lub comparable_property (), atrybuty są rozwiązywane najpierw na deskryptorze zdefiniowanej przez użytkownika, a następnie na komparatora użytkownika.
- Dodane ScopedSession.is_active dostępowe. [Biletów: 976]
- Może przekazać odwzorowanych atrybuty i obiekty kolumn kluczy do query.update ({}). [Bilet: 1262]
- Zmapowane atrybuty przekazywane do wartości () z wkładką w poziomie ekspresji () lub aktualizacji () nie będzie używać klawiszy odwzorowanych kolumn, które z odwzorowanym atrybutu.
- Poprawiono problem z Query.delete () i Query.update () nie działa poprawnie z parametrów wiązania. [Bilet: 1242]
- Query.select_from (), from_statement () upewnić się, że dany argument jest FromClause lub Tekst / Wybierz / Unia odpowiednio.
- Query () mogą być przekazywane & quot; kompozyt & quot; przypisują jako wyrażenie kolumny i będzie rozbudowywana. Nieco podobne do [biletu: 1253].
- Query () jest trochę bardziej wytrzymałe, kiedy przeszedł różnych wyrażeń kolumn, takich jak smyczki, clauselists, tekstu () konstrukcje (co może oznaczać, że po prostu zgłasza błąd ładniej).
- Pierwszy () działa zgodnie z oczekiwaniami Query.from_statement ().
- Naprawiono błąd wprowadzony w 0.5rc4 udziałem zachłanne ładowanie nie działa na właściwości, które zostały dodane do odwzorowujący post-kompilacji używając add_property () lub równoważny.
- Naprawiono błąd, gdzie wiele-do-wielu relacji () z viewonly = true nie będzie poprawnie odwoływały się do związku między drugorzędowybutylokarbonylo- & gt;. Pilot
- elementy dwóch egzemplarzach w opartym na liście kolekcji na zostanie utrzymany przy wydawaniu Wkładki do & quot; wtórne & quot; Stół w wielu-do-wielu relacji. Zakładając, że stół ma m2m lub podstawowej unikalnym kluczem na nim ograniczenie to będzie zwiększyć oczekiwaną naruszenie ograniczenia, zamiast po cichu upuszczając zduplikowane wpisy. Należy pamiętać, że stare zachowanie pozostaje w relacji jeden-do-wielu, ponieważ wpisy zbiórki w tym przypadku nie powodują INSERT i SQLA nie ręcznie zbiory policyjne. [Bilet: 1232]
- Query.add_column () może przyjąć obiektów FromClause w taki sam sposób jak session.query () może.
- Porównanie wiele do jednego relacji do NULL jest odpowiednio przeliczone na IS NOT NULL w oparciu o nie _ ().
- Dodatkowe kontrole, aby zapewnić wyraźny dodane / secondaryjoin są primaryjoin instancje ClauseElement, aby zapobiec błędom bardziej mylące później. [Bilet: 1087]
- Zwiększona mapper () sprawdzić dla klas spoza klasy. [Bilet: 1236]
- comparator_factory argumentem jest teraz udokumentowane i obsługiwane przez wszystkie MapperProperty, w tym column_property (), relacji (), backref (), i synonim () [bilet: 5051].
- Zmieniono nazwę PropertyLoader do RelationProperty, być zgodne ze wszystkimi innymi nazwami. PropertyLoader nadal występuje jako synonim.
- stałe & quot; podwójne iter () & quot; połączenia autobusowe w powodowania błędów API shard, usunąć błędny result.close () jeszcze z wersji 0.4. [Bilet: 1099] [bilet: 1228]
- Nie wykonane kaskady Session.merge wywołać autoflush. Poprawki połączyły przypadki coraz przedwcześnie włożone z brakujących wartości.
- Dwie poprawki, które pomogą zapobiec out-of-band kolumn są renderowane w scenariuszach polymorphic_union dziedziczenia (która następnie powoduje dodatkowe tabele być świadczone w klauzuli FROM powodujących produktów kartezjańskich):
- poprawa pozycji & quot; kolumny adaptacji & quot; dla a- & gt; b- & gt;. sytuacje c spadkowe lepiej znaleźć kolumny, które są związane ze sobą poprzez wiele poziomów zadnie, zamiast renderowania kolumny non-dostosowany
- & quot; polimorficzny dyskryminująca & quot; kolumna jest renderowane tylko za rzeczywiste odwzorowującym jest odpytywany przeciw. Kolumna nie będzie cali do wyciągnął T.W. z podklasy lub nadklasy odwzorowującym ponieważ nie jest potrzebne.
- Poprawiono argumentem shard_id na ShardedSession.execute (). [Bilet: 1072]
- sql
- Kolumny mogą zawierać znaków procentu ponownie w ich nazwach. [Bilet: 1256]
- sqlalchemy.sql.expression.Function jest teraz publicznej klasy. To może być podklasy, aby zapewnić funkcje SQL zdefiniowane przez użytkownika w bezwzględnej stylu, w tym z góry ustalonych zachowań. Postgis.py przykład ilustruje jeden wykorzystanie tego.
- PickleType teraz sprzyja == porównanie domyślnie, jeśli obiekt przychodzące (takie jak dict) realizuje __eq __ (). Jeśli obiekt nie implementuje __eq __ () i zmienny = True, ostrzeżenie dezaprobata jest podniesiony.
- Poprawiono tajemniczości importu w sqlalchemy.sql nie eksportować __names__. [Biletów: 1215]
- Korzystanie z tego samego obiektu ForeignKey wielokrotnie zgłasza błąd, zamiast po cichu braku później. [Bilet: 1238]
- Metoda Dodane NotImplementedError dla parametrów () na Insert / Aktualizacja / Usuń konstrukcje. Pozycje te obecnie nie obsługują tej funkcji, co również byłoby trochę mylące w stosunku do wartości ().
- Odbicie kluczy obcych będzie prawidłowo zlokalizować ich odwołuje kolumny, nawet jeśli kolumna otrzymała & quot; klucz & quot; atrybut różny od odbitej nazwy. Uzyskuje się to poprzez nową flagą na ForeignKey / ForeignKeyConstraint nazwie & quot; & quot ;, link_to_name jeśli prawda oznacza imię jest, o których nie-nazwy kolumny, jej przypisany klucz. [Biletów: 650]
- select () może przyjąć ClauseList jako kolumny w taki sam sposób jak w tabeli lub innego wyboru, i wyrażeń wnętrz będą wykorzystywane jako elementy kolumn. [Bilet: 1253]
- & quot; bierna & quot; Flaga session.is_modified () jest poprawnie propagowane do menedżera atrybutów.
- union () i union_all () nie będzie walnięcie żadnych order_by (), który został zastosowany do select () jest w środku. Jeśli związek () select () z order_by () (prawdopodobnie do wsparcia LIMIT / OFFSET), należy również nazwać self_group () na nim stosować nawiasy.
- Silnik / basen
- Connection.invalidate () sprawdza stan zamknięty, aby uniknąć błędów atrybutów. [Bilet: 1246]
- NullPool obsługuje ponownie na zachowanie awarii. [Bilet: 1094]
- Dodane mutex dla początkowego tworzenia puli podczas korzystania pool.manage (dbapi). Zapobiega to drobne sprawy & quot; Dogpile & quot; zachowania, które w przeciwnym wypadku pojawić się po starcie obciążenia ciężkiego. [Biletów: 799]
- _execute_clauseelement () wraca do bycia prywatna metoda. Rozszerzanie Połączenie nie jest potrzebne teraz, ConnectionProxy jest dostępny.
- Dokumentacja
- Bilety [biletów: 1200] [biletów: 1149].
- Dodano komunikat o create_session () domyślnie.
- Dodano rozdział o metadata.reflect ().
- Aktualizacja `sekcja TypeDecorator`.
- przepisał & quot; ThreadLocal & quot; Sekcja strategia docs powodu niedawnego zamieszania na tej funkcji.
- Usunięto źle nieaktualne "polymorphic_fetch" i "select_table" docs od dziedziczenia, przerobione drugą połowę & quot; dołączył tabeli dziedziczenie & rdquo;.
- Udokumentowane `comparator_factory` kwarg, dodany nowy rozdział doc & quot; niestandardowy komparatory & quot;.
- MSSQL
- refactored typy daty / godziny. `Smalldatetime`` typ danych nie obcina tylko daty i zostaną obecnie odwzorowywane na typ MSSmallDateTime. [Bilet: 1254]
- Poprawiono problem z Cyfry przyjąć int.
- Mapped `` `char_length`` do LEN ()` `` funkcji.
- Jeśli `` INSERT`` obejmuje podselekcji `` INSERT`` zostanie przeliczona z `` INSERT INTO VALUES`` budowy do `` INSERT INTO SELECT`` konstrukcji.
- Jeśli kolumna jest częścią `` primary_key`` to będzie `` NIE NULL`` od MSSQL nie pozwala `` NULL`` w primary_key kolumn.
- `` MSBinary`` teraz zwraca `` BINARY`` zamiast `` IMAGE``. To jest wstecznie niezgodna zmiana, że `` BINARY`` jest stała typu danych długość podczas `` IMAGE`` jest typ zmiennej długości danych. [Bilet: 1249]
- `` get_default_schema_name`` jest teraz widoczne z bazy danych na podstawie domyślnego schematu użytkownika. To działa tylko z MSSQL 2005 i później. [Bilet: 1258]
- Dodano wsparcie sortowania poprzez zastosowanie nowego sortowania argumentu. To jest obsługiwana w następujących typów: char, varchar, nchar, nvarchar, tekst, ntext. [Bilet: 1248]
- Zmiany parametrów ciąg połączenia sprzyjają DSN jako domyślny pyodbc specyfikacji. Zobacz docstring mssql.py szczegółowe instrukcje użytkowania.
- Dodano wsparcie eksperymentalne punkty zapisu. Obecnie nie w pełni współpracować z sesji.
- Wsparcie dla trzech poziomów kolumny wartości null: null, NOT NULL i skonfigurowanego niewypłacalności bazy danych. Domyślna konfiguracja Kolumna (pustych = True) będzie teraz generować NULL w DDL. Wcześniej nie był emitowany i specyfikacja domyślna baza danych w życie (zwykle NULL, ale nie zawsze). Wprost zażądać domyślnej bazy danych, konfiguracji kolumn z wartości pustych = None, a nie specyfikacja będzie emitowany w DDL. To jest wstecznie niezgodna zachowanie. [Bilet: 1243]
- PostgreSQL
- & quot;% & quot; znaki w tekście () konstrukty są automatycznie uciekł do & quot; & quot ;. %% Ze względu na charakter tyłu niezgodnych tej zmiany, jest emitowany, jeśli ostrzeżenie "%%" jest wykrywany w ciągu. [Bilet: 1267]
- Rozmowa alias.execute () w połączeniu z server_side_cursors nie podniesie AttributeError.
- Dodane Główna refleksji wsparcie PostgreSQL, używając wielki plaster możemy długo zaniedbywane przekazany przez Kena Kuhlman. [Biletów: 714]
- Oracle
- Skorygowany format create_xid () naprawy dwufazowe. Mamy teraz raporty terenowe Oracle dwufazowe pracuje poprawnie z tej zmiany.
- Dodane Typ OracleNVarchar, produkuje NVARCHAR2, a także podklas tak że convert_unicode Unicode = true domyślnie. NVARCHAR2 odzwierciedla się w tego typu automatycznie, więc kolumny te przechodzą Unicode na odzwierciedlenie tabeli bez wyraźnej convert_unicode = true flagi. [Bilet: 1233]
- Naprawiono błąd, który zapobiega się params niektórych rodzajów z przyjmowanymi; dzięki ton do huddlej na wwu.edu! [Bilet: 1265]
- mysql
- & quot;% & quot; znaki w tekście () konstrukty są automatycznie uciekł do & quot; & quot ;. %% Ze względu na charakter tyłu niezgodnych tej zmiany, jest emitowany, jeśli ostrzeżenie "%%" jest wykrywany w ciągu.
- Naprawiono błąd w wyjątku, gdy kolumny FK podbiciem nie przedstawi w okresie refleksji. [Bilet: 1241]
- Naprawiono błąd z udziałem odbicie schematu zdalnego tabeli z kluczem obcym do innego ref tabeli w tym schemacie.
- associationproxy
- Właściwości proxy stowarzyszeniowe są dostępni na poziomie klasy, np MyClass.aproxy. Wcześniej oceniano na Brak.
- deklaratywny,
- Pełna lista argumentów akceptowane jako ciąg przez backref () zawiera "primaryjoin", "secondaryjoin", "średnich", 'foreign_keys "," remote_side "," order_by ".
Przedmioty
Wymagania :
- Python
Komentarze nie znaleziono