Перепроектировать декларативное определение класса SQLAlchemy от существующей базы данных MySQL?

Ниже приведена статья в vb.net, но я думаю, что объяснение новых переопределений vs очень легко понять.

https://www.codeproject.com/articles/17477/ the-dark-shadow of of-overrides

В какой-то момент статьи есть следующее предложение:

В общем, Shadows предполагает связанную с этим функцию с вызовом type, в то время как Overrides предполагает реализацию объекта.

blockquote>

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

24
задан Peter McG 15 September 2009 в 06:09
поделиться

3 ответа

use sqlautocode :

Это гибкий инструмент для автоматического создания модели из существующей базы данных.

Это немного другой подход к SqlSoup , который позволяет использовать таблицы без явного их определения. С другой стороны, sqlalutocode будет генерировать реальный код Python.

30
ответ дан nosklo 28 November 2019 в 23:08
поделиться

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

engine = create_engine('mysql://...')
meta = MetaData()
meta.reflect(bind=engine)
for table in meta.tables.values():
    print """
class %s(Base):
    __table__ = Table(%r, Base.metadata, autoload=True)

""" % (table.name, table.name)

, вероятно, другой путь, кроме автокода.

8
ответ дан 28 November 2019 в 23:08
поделиться

SqlSoup может выполнять интроспективное сопоставление существующей схемы SQL.

5
ответ дан 28 November 2019 в 23:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: