Sqlalchemy лучшие практики для создания и именования таблиц SQL на основе новых созданий таблиц - PullRequest
0 голосов
/ 01 сентября 2018

Как следует из названия, мне нужна помощь в понимании того, как связать новые таблицы с существующим классом sqlalchemy, если это даже правильное понимание.

dbstring = 'sqlite:///db.db'
engine = create_engine(dbstring)
Session = sessionmaker(bind=engine)
session = Session()

Base = declarative_base()
metadata = MetaData

class SomeTable(Base):
    __tablename__ = 'somename'
    table_id = Column(Integer, primary_key=True)
    value_a = Column(Float())
    value_b = Column(String())
    value_c = Column(Float())

Я хотел бы использовать класс как способ управления значениями, вставленными в будущие таблицы. Есть ли способ использовать sqlalchemy для выдачи команды создания таблицы в формате, подобном:

table_named_foo = SomeTable(value_a = 12.3, value_b = 'bar', value_c = 45.6)
session.commit(table_named_foo)

1 Ответ

0 голосов
/ 04 сентября 2018

IIUC Я полагаю, что вопрос заключается в том, почему вы можете вставить объект типа string в столбец, который был определен как Float или наоборот. Это потому, что SQLLite использует динамическую типизацию и позволит вам поместить любой тип в столбец независимо от того, как он был определен.

Смотрите здесь для получения дополнительной информации: https://www.sqlite.org/faq.html#q3

Попробуйте это в PostgreSQL, и вы, скорее всего, получите ожидаемое поведение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...