0.2 Changelog

0.2.8

Released: Tue Sep 05 2006
  • [no_tags]

    очистка методов подключения + документация. пользовательские аргументы DBAPI, указанные в строке запроса, аргумент „connect_args“ в „create_engine“, или пользовательская функция создания через функцию „creator“ в „create_engine“.

  • [no_tags]

    добавлен аргумент «recycle» для Pool, это «pool_recycle» в create_engine, по умолчанию 3600 секунд; соединения по истечении этого времени будут закрыты и заменены на новые, для работы с базами данных, которые автоматически закрывают устаревшие соединения

    References: #274

  • [no_tags]

    изменена семантика «invalidate» для пула соединений; при следующем вызове будет дано указание базовой записи соединения переподключиться. «invalidate» также будет автоматически вызываться при возникновении ошибки в базовом вызове connection.cursor(). Это, надеюсь, позволит пулу соединений повторно подключаться к базе данных, которая была остановлена и запущена, без перезапуска подключающегося приложения.

    References: #121

  • [no_tags]

    Ишь ты ! Туториал доктест был сломан довольно долгое время.

  • [no_tags]

    Метод add_property() на маппере делает шаг «компиляции всех мапперов» в случае, если данное свойство ссылается на некомпилируемый маппер (как это было в случае с учебником !)

  • [no_tags]

    проверка наличия уже существующей последовательности pg перед созданием

    References: #277

  • [no_tags]

    Если контекстная сессия установлена через MapperExtension.get_session (как это происходит при использовании плагина sessioncontext и т.д.), то операция ленивой загрузки будет использовать эту сессию по умолчанию, если родительский объект не персистентен с уже установленной сессией.

  • [no_tags]

    Ленивая загрузка не сработает для объекта, не имеющего идентификатора базы данных (почему? см. https://www.sqlalchemy.org/trac/wiki/WhyDontForeignKeysLoadData)

  • [no_tags]

    В unit-of-work улучшена проверка «осиротевших» объектов, являющихся частью каскада «delete-orphan», для определенных условий, когда родитель недоступен для каскадирования.

  • [no_tags]

    Картографы могут определить, является ли один из их объектов «сиротой», на основании взаимодействия с пакетом атрибутов. Эта проверка основана на флаге состояния, который поддерживается для каждого отношения, когда объекты присоединяются и отсоединяются друг от друга.

  • [no_tags]

    теперь недействительно объявлять самореферентные отношения с «delete-orphan» (так как вышеупомянутая проверка сделает их невозможными для сохранения)

  • [no_tags]

    улучшена проверка на принадлежность объектов к сеансу, когда блок работы пытается их прошить() как часть отношения…

  • [no_tags]

    Выполнение операторов поддерживает использование одного и того же объекта BindParam более одного раза в выражении; упрощена работа с позиционными параметрами. Отличная работа Билла Нуна по раскрытию основной идеи.

    References: #280

  • [no_tags]

    Отражение postgres перешло на использование таблиц pg_schema, что может быть переопределено аргументом use_information_schema=True в create_engine.

    References: #60, #71

  • [no_tags]

    добавлен аргумент case_sensitive в MetaData, Table, Column, который автоматически определяется в зависимости от того, имеет ли родительский элемент схемы значение флага не None, а если нет, то является ли имя идентификатора полностью строчным или нет. при значении True кавычки применяются к идентификаторам со смешанными или прописными идентификаторами. Кавычки также автоматически применяются во всех случаях к идентификаторам, которые, как известно, являются зарезервированными словами или содержат другие нестандартные символы. различные диалекты баз данных могут переопределить все это поведение, но в настоящее время все они используют поведение по умолчанию. протестировано на postgres, mysql, sqlite, oracle. требуется дополнительное тестирование на firebird, ms-sql. часть текущей работы с

    References: #155

  • [no_tags]

    Обновлены модульные тесты для работы без установленного pysqlite; тест пула использует имитацию DBAPI

  • [no_tags]

    Урлы поддерживают экранированные символы в паролях

    References: #281

  • [no_tags]

    добавлены ограничения/смещения для UNION-запросов (хотя в oracle их пока нет)

  • [no_tags]

    В типы DateTime и Time добавлен флаг «timezone=True». Пока postgres преобразует его в «TIME[STAMP] (WITH|WITHOUT) TIME ZONE», чтобы контроль над наличием часового пояса был более управляемым (psycopg2 возвращает даты с tzinfo, если они доступны, что может создавать путаницу с датами, которые их не имеют).

  • [no_tags]

    Исправление использования query.count() с distinct, **kwargs с SelectResults count()

    References: #287

  • [no_tags]

    исключение таблицы из метаданных при неудачной автозагрузке;

    References: #289

  • [no_tags]

    импорт py2.5s sqlite3

    References: #293

  • [no_tags]

    Исправление юникода для startswith()/endswith()

    References: #296

0.2.7

Released: Sat Aug 12 2006
  • [no_tags]

    средства цитирования настроены таким образом, что для отдельных идентификаторов таблиц, схем и столбцов, используемых во всех запросах/созданиях/выгрузках, может быть включено цитирование, характерное для конкретной базы данных. Включается через «quote=True» в таблице или столбце, а также «quote_schema=True» в таблице. Спасибо Аарону Спайку за отличную работу.

  • [no_tags]

    assignmapper устанавливал is_primary=True, что приводило к всевозможным казусам и не приводило к ошибке при установке избыточных картографов, исправлено

  • [no_tags]

    В Mapper добавлена опция allow_null_pks, позволяющая создавать строки, в которых некоторые столбцы первичного ключа равны null (т.е. при сопоставлении с внешними объединениями и т.д.)

  • [no_tags]

    Модификация unitofwork, позволяющая не поддерживать порядок в списке «new» или в списке «objects» UOWTask; вместо этого новые объекты помечаются идентификатором порядка, когда они регистрируются как новые в сессии, а затем INSERT-операторы сортируются в mapper save_obj. Упорядочение INSERT, по сути, перенесено в конец цикла flush. Таким образом, различные сортировки и организации, возникающие в UOWTask (в частности, сортировка круговых задач), не должны заботиться о поддержании порядка (чего они и так не делали).

  • [no_tags]

    исправлено отражение внешних ключей для автозагрузки ссылающейся таблицы, если она еще не была загружена

  • [no_tags]

    • передавать аргументы строки запроса URL в функцию connect()

    References: #256

  • [no_tags]

    • oracle boolean type

    References: #257

  • [no_tags]

    Пользовательские условия первичного/вторичного соединения в отношении по умолчанию будут распространяться на backref. Указание backref() отменяет это поведение.

  • [no_tags]

    улучшена проверка неоднозначных условий присоединения в sql.Join; распространяется на лучшее сообщение об ошибке в PropertyLoader (т.е. relation()/backref()) для случаев, когда условие присоединения не может быть разумно определено.

  • [no_tags]

    sqlite корректно создает объекты ForeignKeyConstraint при отражении таблицы.

  • [no_tags]

    корректировки пула, связанные с изменениями, внесенными для. счетчик переполнения должен уменьшаться только в том случае, если соединение действительно удалось. добавлен тестовый скрипт для проверки этого.

    References: #224

  • [no_tags]

    исправлено отражение в mysql значений по умолчанию на PassiveDefault

  • [no_tags]

    добавлены отраженные типы „tinyint“, „mediumint“ в MS-SQL.

    References: #263, #264

  • [no_tags]

    SingletonThreadPool имеет определенный размер и выполняет очистку, так что остается только заданное количество соединений, локализованных в потоке (необходимо для sqlite-приложений, которые массово избавляются от потоков)

  • [no_tags]

    Исправлена небольшая ошибка(и) с ленивыми загрузчиками

    References: #265, #267

  • [no_tags]

    Исправлена возможная ошибка в отражении mysql, когда некоторые версии возвращали массив вместо строки для вызова SHOW CREATE TABLE

  • [no_tags]

    Исправление ленивой загрузки при отображении на джойны

    References: #1770

  • [no_tags]

    Все вызовы create()/drop() имеют ключевой аргумент «connectable». «engine» является устаревшим.

  • [no_tags]

    Исправлена функция ms-sql connect() для работы с adodbapi

  • [no_tags]

    добавлен флаг «nowait» в Select()

  • [no_tags]

    Проверка наследования использует issubclass() вместо прямой проверки __mro__, чтобы убедиться, что класс A наследует от B, что позволяет более гибко согласовывать наследование мапперов с наследованием классов

    References: #271

  • [no_tags]

    SelectResults будет использовать подвыборку при вызове агрегата (т.е. max, min и т.д.) на SelectResults, содержащем предложение ORDER BY

    References: #252

  • [no_tags]

    Исправления в типах, чтобы легче было использовать типы, специфичные для базы данных; исправления в текстовых типах mysql для работы с этой методологией

    References: #269

  • [no_tags]

    некоторые исправления в организации типа даты в sqlite

  • [no_tags]

    добавление MSTinyInteger в MS-SQL

    References: #263

0.2.6

Released: Thu Jul 20 2006
  • [no_tags]

    большая переработка схемы, позволяющая использовать действительно составные ограничения по первичному и внешнему ключу, с помощью новых объектов ForeignKeyConstraint и PrimaryKeyConstraint. Существующие методы создания первичных/иностранных ключей не изменились, но используют эти новые объекты за сценой. Создание и отражение таблиц теперь больше ориентировано на таблицы, а не на столбцы.

    References: #76

  • [no_tags]

    изменена схема вызова MapperExtension, ранее она работала не очень хорошо

  • [no_tags]

    доработки в ActiveMapper, поддержка самореферентных отношений

  • [no_tags]

    Небольшая перестановка в хранилище объектов (в activemapper/threadlocal), чтобы на SessionContext ссылались по „.context“, а не подклассифицировали напрямую.

  • [no_tags]

    activemapper будет использовать хранилище объектов threadlocal, если мод активирован при импорте activemapper

  • [no_tags]

    Небольшое исправление в URL regexp для разрешения имен файлов с „@“ в них

  • [no_tags]

    исправления в Session expunge/update/etc… нуждается в дополнительной очистке.

  • [no_tags]

    Мапперы select_table по-прежнему не всегда компилировались

  • [no_tags]

    исправлен тип данных Boolean

  • [no_tags]

    добавлены count()/count_by() в список методов, проксируемых assignmapper; это также добавляет их в activemapper

  • [no_tags]

    исключения подключения, обернутые в DBAPIError

  • [no_tags]

    ActiveMapper теперь поддерживает автозагрузку определений колонок из базы данных, если во внутреннем классе отображения указать атрибут __autoload__ = True. В настоящее время это не поддерживает отражение каких-либо отношений.

  • [no_tags]

    Отложенная загрузка колонок при некоторых обстоятельствах могла испортить статус соединения в flush(), это исправлено

  • [no_tags]

    expunge() не работал с каскадом, исправлено.

  • [no_tags]

    Исправлен возможный бесконечный цикл при выполнении каскадных операций.

  • [no_tags]

    добавлена функция «synonym()», применяемая к свойствам, имя которых совпадает с именем другого свойства, для переопределения реквизитов и обеспечения доступности исходного имени реквизита в select_by().

  • [no_tags]

    Исправление типизации при построении клаузы, которое, в частности, помогает решить проблемы с типами при использовании polymorphic_union (CAST/ColumnClause распространяет свой тип на прокси-столбцы)

  • [no_tags]

    Продолжается работа над компиляцией мапперов, когда-нибудь она будет работать…. перенесена инициализация объектов MapperProperty на время после создания всех мапперов для лучшей обработки циклических компиляций. теперь метод do_init() вызывается для всех свойств, которые более осведомлены о своем «унаследованном» статусе, если это так.

  • [no_tags]

    явный запрет на увеличение нагрузки на самореферентные отношения или отношения с наследующим картографом (который также является самореферентным)

  • [no_tags]

    уменьшен размер bind param в query._get, чтобы успокоить придирчивого оракула

    References: #244

  • [no_tags]

    добавлен аргумент „checkfirst“ в table.create()/table.drop(), а также в table.exists()

    References: #234

  • [no_tags]

    некоторые другие текущие исправления наследования

    References: #245

  • [no_tags]

    атрибуты/обратные ссылки/орфаны/отслеживание истории, как обычно…

0.2.5

Released: Sat Jul 08 2006
  • [no_tags]

    Исправлена ошибка бесконечного цикла в select_by(), если при обходе попадались два картографа, которые ссылались друг на друга

  • [no_tags]

    Модернизированы все unittests для вставки „./lib/“ в sys.path, что позволяет обойти новое поведение setuptools, убивающее PYTHONPATH

  • [no_tags]

    дальнейшие исправления с помощью attributes/dependencies/etc….

  • [no_tags]

    Улучшена обработка ошибок, когда DynamicMetaData не подключена

  • [no_tags]

    Поддержка MS-SQL в основном работает (проверено с помощью pymssql)

  • [no_tags]

    упорядочивание операторов UPDATE и DELETE внутри групп теперь осуществляется в порядке возрастания значений первичных ключей, что обеспечивает более детерминированное упорядочивание

  • [no_tags]

    Расширения маппера after_insert/delete/update теперь вызываются для каждого объекта, а не для каждого объекта и таблицы

  • [no_tags]

    дополнительные исправления/рефакторинги в компиляции мапперов

0.2.4

Released: Tue Jun 27 2006
  • [no_tags]

    try/except, когда mapper устанавливает init.__name__ для сопоставленного класса, поддерживает python 2.3

  • [no_tags]

    Исправлена ошибка, при которой потоково-локальный движок выполнял автокоммит, несмотря на выполняющуюся транзакцию

  • [no_tags]

    Операции lazy load и deferred load требуют, чтобы родительский объект находился в сессии; если раньше операция просто возвращала пустой список или None, то теперь она вызывает исключение.

  • [no_tags]

    Session.update() немного мягче, если сессия, к которой ранее был прикреплен данный объект, была собрана; в противном случае все равно требуется явное удаление экземпляра из предыдущей сессии.

  • [no_tags]

    исправления в компиляции маппера, проверка большего количества условий ошибок

  • [no_tags]

    Небольшое исправление нетерпеливой загрузки в сочетании с упорядочиванием/ограничением/смещением

  • [no_tags]

    совершенно замечательно: добавлен одинарный пробел между „CREATE TABLE“ и „(<остальное>“, поскольку так MySQL обозначает не зарезервированное слово tablename…...

    References: #206

  • [no_tags]

    больше исправлений в наследовании, связанных с отношениями «многие-ко-многим» и корректным сохранением

  • [no_tags]

    Исправлена ошибка при указании явного модуля для диалекта mysql

  • [no_tags]

    когда QueuePool завершает работу, он выдает ошибку TimeoutError вместо ошибочного установления нового соединения

  • [no_tags]

    Использование Queue.Queue в пуле заменено на локально модифицированную версию (работает в py2.3/2.4!), использующую threading.RLock для мьютекса. Это сделано для исправления зафиксированного случая, когда метод ConnectionFairy’s __del__() вызывался внутри метода Queue’s get(), который затем возвращал свое соединение с Queue через метод put(), вызывая реентерабельное зависание, если не использовать threading.RLock.

  • [no_tags]

    postgres не будет помещать ключевое слово SERIAL в столбец первичного ключа, если он имеет ограничение внешнего ключа

  • [no_tags]

    Метод cursor() в ConnectionFairy позволяет распространять специфические для db аргументы расширения

    References: #221

  • [no_tags]

    Параметры привязки при ленивой загрузке правильно распространяют тип столбца

    References: #225

  • [no_tags]

    новые типы MySQL: MSEnum, MSTinyText, MSMediumText, MSLongText и т.д. Больше поддержки специфических для MS параметров длины/точности в числовых типах, исправление любезно предоставлено Майком Бернсоном

  • [no_tags]

    некоторые исправления в функции invalidate() пула соединений

    References: #224

0.2.3

Released: Sat Jun 17 2006
  • [no_tags]

    изменена отложенная компиляция отображений. Это позволяет строить отображения в любом порядке, а их связи друг с другом компилировать при первом использовании отображений.

  • [no_tags]

    Исправлено довольно сильное снижение скорости в поведении каскадов, особенно когда использовались обратные ссылки

  • [no_tags]

    Полностью переписан модуль инструментария атрибутов, он стал намного проще и понятнее, немного быстрее. «История» атрибута больше не обрабатывается при каждом изменении, а является частью объекта «CommittedState», создаваемого при первой загрузке экземпляра. HistoryArraySet исчез, поведение списочных атрибутов стало более открытым (т.е. они больше не являются наборами).

  • [no_tags]

    В py2.4 конструкция «set» используется внутренне, возвращаясь к sets.Set, когда «set» недоступен или требуется упорядочивание.

  • [no_tags]

    Исправление управления транзакциями, чтобы повторные вызовы rollback() не приводили к сбоям (они приводили к тому, что flush() вызывал исключение в большом блоке транзакций try/except)

  • [no_tags]

    Аргумент «foreignkey» в relation() также может быть списком. Исправлено определение автоиностранного ключа

    References: #151

  • [no_tags]

    исправлена ошибка, из-за которой таблицы с именами схем не индексировались в объекте MetaData должным образом

  • [no_tags]

    исправлена ошибка, из-за которой в ResultProxy не происходило преобразование типа колонки с переопределенным свойством «key»

    References: #207

  • [no_tags]

    исправлен атрибут „port“ в URL на целое число, если он присутствует

  • [no_tags]

    Исправлена старая ошибка, когда в таблице «многие-ко-многим», отображаемой как «вторичная», имелись дополнительные столбцы, операции удаления не выполнялись

  • [no_tags]

    Исправление ошибок при сопоставлении с UNION-запросами

  • [no_tags]

    исправлен некорректный выброс класса исключения при отсутствии драйвера БД

  • [no_tags]

    добавлено исключение NonExistentTable, возникающее при отражении несуществующей таблицы

    References: #138

  • [no_tags]

    Небольшое исправление в ActiveMapper относительно обратных ссылок «один к одному», другие рефакторинги

  • [no_tags]

    переопределенный конструктор в отображаемых классах получает __name__ и __doc__ из исходного класса

  • [no_tags]

    Исправлена небольшая ошибка в файле selectresult.py, касающаяся расширения mapper

    References: #200

  • [no_tags]

    небольшая доработка cascade_mappers, не очень сильно поддерживаемая функция на данный момент

  • [no_tags]

    Некоторые исправления в between(), column.between() для лучшего распространения информации о типе

    References: #202

  • [no_tags]

    если объект не удается построить, он не добавляется в сессию

    References: #203

  • [no_tags]

    Функция CAST выделена в отдельный объект clause с собственной функцией компиляции в ansicompiler; это позволяет MySQL молча игнорировать большинство вызовов CAST, поскольку MySQL, похоже, поддерживает стандартный синтаксис CAST только для типов Date. Поддержка MySQL-совместимого CAST для строк, интов и т.д. - TODO

0.2.2

Released: Mon Jun 05 2006
  • [no_tags]

    значительные улучшения в поведении полиморфного наследования, позволяющие работать с табличными структурами списков смежности

    References: #190

  • [no_tags]

    значительные исправления и рефакторинг отношений наследования в целом, больше модульных тестов

  • [no_tags]

    исправлен флаг «echo_pool» в функции create_engine()

  • [no_tags]

    Исправление в документации, удалена неверная информация о том, что close() небезопасно использовать с threadlocal стратегией (она абсолютно безопасна !)

  • [no_tags]

    create_engine() может принимать URL в виде строки или юникода

    References: #188

  • [no_tags]

    Частично завершена поддержка firebird; спасибо Джеймсу Ралстону и Брэду Клементсу за их усилия.

  • [no_tags]

    Нарушена трансляция Oracle url, исправлено, при наличии поля „database“ в cx_oracle makedsn() будет передаваться host/port/sid, в противном случае используется прямое TNS-имя из поля „host“.

  • [no_tags]

    исправление использования юникодного критерия для query.get()/query.load()

  • [no_tags]

    Функция count() для selectables теперь использует первичный ключ таблицы или первый столбец вместо «1» в качестве критерия, а также использует метку «rowcount» вместо «count».

  • [no_tags]

    убрана рудиментарная функциональность «отображения на несколько таблиц», более корректно документирована

  • [no_tags]

    Восстановленная функция global_connect() присоединяется к экземпляру DynamicMetaData с именем «default_metadata». Если оставить MetaData arg в Table out, то будут использоваться метаданные по умолчанию.

  • [no_tags]

    исправления в поведении каскада сессий, распространении имени_существа

  • [no_tags]

    реорганизованы unittests в подкаталоги

  • [no_tags]

    Дополнительные исправления шаблонов вложенности потоковых соединений

0.2.1

Released: Mon May 29 2006
  • [no_tags]

    Аргумент «pool» в create_engine() корректно распространяет

  • [no_tags]

    исправляет URL, вызывает исключение, если не разобрано, не передает пустые поля в строку подключения к БД (строка типа user:host@/db ломалась на postgres).

  • [no_tags]

    Небольшие исправления в работе Mapper при вставке и попытке получить обратно новые значения первичного ключа

  • [no_tags]

    Переписал половину TLEngine, ComposedSQLEngine, используемого со стратегией „strategy=»threadlocal»“. Теперь он правильно реализует engine.begin()/ engine.commit(), которые полностью вложены в connection.begin()/trans.commit(). добавил около шести unittests.

  • [no_tags]

    Основная «ошибка» в pool.Pool - забыли вернуть на место WeakValueDictionary. unittest, который должен был проверить это, также молча пропускал его. исправили unittest, чтобы ConnectionFairy корректно выпадал из области видимости.

  • [no_tags]

    В SingletonThreadPool добавлен метод placeholder dispose(), который пока ничего не делает

  • [no_tags]

    Функция rollback() автоматически вызывается при возникновении исключения, но только в том случае, если транзакция не находится в процессе (т.е. работает скорее как autocommit).

  • [no_tags]

    исправлено возникновение исключения в sqlite при отсутствии модуля sqlite

  • [no_tags]

    добавлена дополнительная детализация примера для документа «Объект ассоциации

  • [no_tags]

    Добавляется проверка соединения на то, что оно уже закрыто

0.2.0

Released: Sat May 27 2006
  • [no_tags]

    перестройка системы Engine, в результате которой то, что раньше было SQLEngine, теперь является ComposedSQLEngine, состоящим из множества компонентов, включая Dialect, ConnectionProvider и т.д. Это коснулось всех модулей db, а также Session и Mapper.

  • [no_tags]

    create_engine теперь принимает только строки в стиле RFC-1738: driver://user:password@host:port/database

    обновление этот формат в целом, но не в точности соответствует RFC-1738, в том числе в части «scheme» принимаются подчеркивания, а не тире или периоды.

  • [no_tags]

    Полностью переработана методология копирования соединений, объекты Connection теперь могут напрямую выполнять элементы клаузы, добавлено явное «закрытие», а также поддержка во всем Engine/ORM для корректной обработки закрытия, больше не полагаясь на __del__ для возврата соединений в пул.

    References: #152

  • [no_tags]

    переработаны интерфейс сессий и их масштабирование. используются методы в стиле hibernate, включая query(class), save(), save_or_update() и т.д. По умолчанию не устанавливается потоково-локальная область видимости. Предоставляет интерфейс привязки к конкретным движкам и/или соединениям, так что базовые объекты Schema не обязательно привязывать к движку. Добавлен базовый объект SessionTransaction, позволяющий упрощенно агрегировать транзакции между несколькими движками.

  • [no_tags]

    переработана система зависимостей и «каскадного» поведения маппера; логика зависимостей вынесена из properties.py в отдельный модуль «dependency.py». Поведение «каскада» теперь явно контролируется, реализована корректная реализация «delete», «delete-orphan» и т.д. Система зависимостей теперь может определять во время флеша, есть ли у дочернего объекта родитель или нет, чтобы принимать более точные решения о том, как этот дочерний объект должен обновляться в БД в отношении удалений.

  • [no_tags]

    переработка схемы для создания объекта MetaData вместо движка. Вся система SQL/Schema может использоваться без каких-либо движков, исполняясь только через явный объект Connection. «Связанная» методология существует через BoundMetaData для объектов схемы. ProxyEngine, как правило, больше не нужен и заменяется DynamicMetaData.

  • [no_tags]

    реализовано истинное полиморфное поведение, исправлены

    References: #167

  • [no_tags]

    Система «oid» полностью переведена на поведение во время компиляции; если они используются в order_by, где их нет, то order_by не компилируется, исправления

    References: #147

  • [no_tags]

    изменена упаковка; «mapping» теперь «orm», «objectstore» теперь «session», старое пространство имен «objectstore» загружается через мод «threadlocal», если используется

  • [no_tags]

    Моды теперь вызываются через «import <modname>». расширениям отдается предпочтение перед модами, так как моды глобально монкипатчимы

  • [no_tags]

    Исправление add_property, чтобы оно распространяло свойства на наследующие отображатели

    References: #154

  • [no_tags]

    Обратные ссылки создаются по первичному отображателю исходного свойства, аргументы primary/secondary join могут быть указаны для переопределения. помогает их использование с полиморфными отображателями

  • [no_tags]

    Реализована функция «таблица существует»

    References: #31

  • [no_tags]

    »create_all/drop_all» добавлен в объект MetaData

    References: #98

  • [no_tags]

    улучшения и исправления в алгоритме топологической сортировки, а также больше модульных тестов

  • [no_tags]

    В документацию добавлена обучающая страница, которую также можно запустить с помощью пользовательской программы doctest runner для проверки правильности работы. Документация в целом переработана для работы с новыми паттернами кода

  • [no_tags]

    еще много исправлений, рефакторингов.

  • [no_tags]

    Руководство по миграции доступно в Wiki по адресу https://www.sqlalchemy.org/trac/wiki/02Migration.

Вернуться на верх