В SQLAlchemy 0.1 не было объекта "метаданных" - Engine
был привязан непосредственно к каждому Table
.Эта идея очень быстро устарела, отчасти потому, что люди хотели объявить свой объект Table до того, как они подключились, и появились «связанные метаданные».Затем произошел длительный период массового беспорядка.У людей была сверхтяжелая привычка (так как я велел им делать это таким образом), говорить что-то вроде:
table.insert().execute()
result = table.select().execute()
Т.е. без транзакций, каждый раз используя новое соединение.Тогда мы скажем: «ну, вы должны использовать транзакцию, вы должны быть более эффективными в отношении соединений», а затем мы в основном сказали бы им, что они должны переписать свое приложение, и мем «sqlalchemy имеет слишком много способов»взрывал, как воздушный шар
1007 * в то же время, пилоны и другие механизмы раннего WSGI были толкания трудно иметь несколько «приложений», работающих одновременно. - в некоторых случаях различные «пользователи» будет иметь свой собственный набортаблицы каждая в разных базах данных, вроде того.Более распространенными являются подходы горизонтального масштабирования, когда одни и те же таблицы находятся во многих базах данных.У меня есть приложение, которое имеет встроенную систему «репликации», в которой записи периодически копируются из «первичной» базы данных в базу данных «история», и метаданные таблицы там тоже являются общими.
Дело в том,во всех этих случаях пользователи приходили на SQLA, и их понимание вещей начиналось с «связанных метаданных».Блоги и учебники повсеместно использовали его.И большая часть этих пользователей должна была бы вырваться из этой системы и полностью запутаться, что существует весь этот «другой способ» работы.Таким образом, стало ясно, что система «связанных метаданных» была слишком жесткой по умолчанию.В идеале я бы хотел, чтобы я вообще никогда не реализовывал это, и я никогда не использую это сам.Вот почему документы для этого теперь помещены в один раздел, новые пользователи, которые только просматривают документы, которые по своей природе добавляют огромное бремя поддержки к списку рассылки, не находят его и не путаются.В самом разделе есть множество маркеров, объясняющих, когда и почему это сбивает с толку .Я предполагаю, что вы прочитали это в http://www.sqlalchemy.org/docs/core/schema.html#binding-metadata-to-an-engine-or-connection.