2024-04-19 21:19:15 发布
网友
我正在尝试sqlalchemy,并使用此连接字符串连接到我的数据库
engine = create_engine('sqlite:///C:\\sqlitedbs\\database.db')
sqlalchemy是否为您创建了一个sqlite数据库?如果一个数据库不在它应该获取数据库文件的目录中?。
是的,sqlalchemy确实为您创建了一个数据库。我使用以下代码在windows上确认了它
from sqlalchemy import create_engine, ForeignKey from sqlalchemy import Column, Date, Integer, String from sqlalchemy.ext.declarative import declarative_base engine = create_engine('sqlite:///C:\\sqlitedbs\\school.db', echo=True) Base = declarative_base() class School(Base): __tablename__ = "woot" id = Column(Integer, primary_key=True) name = Column(String) def __init__(self, name): self.name = name Base.metadata.create_all(engine)
我发现(使用sqlite+pysqlite)如果目录存在,它将创建它,但是如果目录不存在,它将引发一个异常:
OperationalError: (sqlite3.OperationalError) unable to open database file
我的解决办法是这样做,尽管感觉很糟糕:
if connection_string.startswith('sqlite'): db_file = re.sub("sqlite.*:///", "", connection_string) os.makedirs(os.path.dirname(db_file), exist_ok=True) self.engine = sqlalchemy.create_engine(connection_string)
是的,sqlalchemy确实为您创建了一个数据库。我使用以下代码在windows上确认了它
我发现(使用sqlite+pysqlite)如果目录存在,它将创建它,但是如果目录不存在,它将引发一个异常:
我的解决办法是这样做,尽管感觉很糟糕:
相关问题 更多 >
编程相关推荐