【发布时间】:2018-03-08 17:06:35
【问题描述】:
我正在尝试使用 SQLAlchemy 创建一个应用程序。只要我只有一个文件和一个类,它就可以正常工作。现在我想在不同的文件中有多个类/表。我偶然发现了this 问题,并尝试按照那里的建议进行操作:我现在有三个文件
base.py
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
blind.py
from sqlalchemy import Column, String
from .base import Base
class Blind(Base):
__tablename__ = 'blinds'
blind = Column(String)
data_processor_uuid = Column(String, primary_key=True)
data_source_uuid = Column(String)
timestamp = Column(String, primary_key=True)
和data.py
from sqlalchemy import Column, Integer, String, Float
from .base import Base
class Datum(Base):
__tablename__ = 'data'
data_source_uuid = Column(Integer, primary_key=True)
sensor_type = Column(String)
timestamp = Column(String, primary_key=True)
value = Column(Float)
我现在想使用 db_setup.py 初始化数据库
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from .base import Base
engine = create_engine('sqlite:///test.db', echo=True)
Base.metadata.bind = engine
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()
def get_db_session():
return session
这可行,但是它不会按预期在数据库中创建表。当我尝试向表中插入某些内容时,我收到一条错误消息,提示“表不存在”。谁能告诉我我在这里做错了什么?
【问题讨论】:
标签: python python-3.x sqlalchemy