为什么schema_translate_map不更改架构?

乔西

我试图用来schema_translate_map更改架构:

Base = declarative_base()


class DataAccessLayer():

    def __init__(self):
        conn_string = "mysql+mysqlconnector://root:root@localhost/"
        self.engine = create_engine(conn_string)
        Session = sessionmaker()
        Session.configure(bind=self.engine)
        self.session = Session()

    def change_schema(self):
        self.session.connection(execution_options={"schema_translate_map": {"belgarath": "belgarath_test"}})


class Player(Base):
    __tablename__ = "player"
    __table_args__ = {'schema': "belgarath"}

    id_ = Column(Integer, primary_key=True)


dal = DataAccessLayer()
dal.change_schema()
qry = dal.session.query(Player.id_)
print(qry)

但是,SQL显示为:

SELECT belgarath.player.id_ AS belgarath_player_id_ 
FROM belgarath.player

代替:

SELECT belgarath_test.player.id_ AS belgarath_test_player_id_ 
FROM belgarath_test.player

我要去哪里错了?

PB

如果您只是追加.all()到您的qry

from sqlalchemy import Integer
from sqlalchemy import Column
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class DataAccessLayer():

    def __init__(self):
        conn_string = "sqlite:///:memory:"
        #conn_string = "mysql+mysqlconnector://root:root@localhost/"
        self.engine = create_engine(conn_string)
        Session = sessionmaker()
        Session.configure(bind=self.engine)
        self.session = Session()

    def change_schema(self):
        self.session.connection(execution_options={"schema_translate_map": {"belgarath": "belgarath_test"}})


class Player(Base):
    __tablename__ = "player"
    __table_args__ = {'schema': "belgarath"}

    id_ = Column(Integer, primary_key=True)


dal = DataAccessLayer()
dal.change_schema()
qry = dal.session.query(Player.id_)
print(qry.all())

输出(无跟踪):

OperationalError: (sqlite3.OperationalError) no such table: belgarath_test.player
[SQL: SELECT belgarath_test.player.id_ AS belgarath_player_id_ 
FROM belgarath_test.player]
(Background on this error at: http://sqlalche.me/e/13/e3q8)

我不是专家,但是我想这可能与以下问题有关

模式转换功能发生在编译器内部,这是完全错误的。模式分配应该在生成SQL之后进行,因此我们只需要一个缓存键。这是按照#5002的思路进行的,但是我认为,即使是与AKED等一起使用的现有缓存键机制,也都需要将架构转换完全从编译器中拉出1.4版,并将其添加到从ExecutionContext生成的转换中,扩展逻辑参数集。模式转换旨在为数百/数千个模式提供服务,因此发生这种情况时,必须更改预缓存。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么直接更改迁移文件不会更改架构文件?

来自分类Dev

为什么plm不更改方法?(右)

来自分类Dev

.vimrc为什么不更改vimtutor的外观?

来自分类Dev

猫为什么不更改访问时间?

来自分类Dev

为什么不更改标签的颜色?

来自分类Dev

为什么不更改数据时会更改数据?

来自分类Dev

为什么要定义架构?

来自分类Dev

为什么MIPS架构不区分存储的带符号和无符号类型数据?

来自分类Dev

为什么在更改DOM之后IWebBrowser2不刷新?

来自分类Dev

为什么更改全局变量的值不生效?

来自分类Dev

为什么我的范围不包含循环更改元素?

来自分类Dev

为什么此UnityScript代码不更改Unity中的场景?

来自分类Dev

为什么上载类不更改覆盖的方法?

来自分类Dev

为什么ora_rowscn更改而不更新表

来自分类Dev

为什么不更改gxui中进度条的映射?

来自分类Dev

为什么在更改哈希时pipenv不抱怨?

来自分类Dev

为什么不搁置何时对可变对象进行更改?

来自分类Dev

为什么我的LayoutParams不更改我的布局?

来自分类Dev

如果使用sudo,为什么$ HOME不更改?

来自分类Dev

为什么我的JFrame程序不更改背景颜色?

来自分类Dev

元素的更改属性-为什么不触发onchange事件?

来自分类Dev

为什么不更改getView()android中的位置?

来自分类Dev

为什么对/ etc / passwd所做的更改不生效?

来自分类Dev

umask为什么不更改文件的执行权限?

来自分类Dev

Web Audio API流:为什么dataArray不更改?

来自分类Dev

为什么我的输入类不更改宽度?

来自分类Dev

为什么不更改绑定XAML中的数据?

来自分类Dev

为什么字符串变量更改后不更新

来自分类Dev

为什么在使用AJAX时不更改$ _SESSION变量(PHP)?

Related 相关文章

热门标签

归档