有没有办法避免在使用Marshmallow时将数据插入到会话中 - sqlalchemy
sqlalchemy棉花糖避免加载到会话中
参考:https://marshmallow-sqlalchemy.readthedocs.org/en/latest/
因为我们试图通过自己管理对象.如果需要,将添加到会话中,但是对于验证我需要使用load()
author = Author(name='Chuck Paluhniuk')
book = Book(title='Fight Club', author=author)
session.add(author)
session.add(book)
session.commit()
author_schema.dump(author).data
# {'books': [123], 'id': 321, 'name': 'Chuck Paluhniuk'}
author_schema.load(dump_data, session=session).data
# <Author(name='Chuck Paluhniuk')>
Run Code Online (Sandbox Code Playgroud)
为了避免这个问题,在我尝试加载后我可以调用DB Session.close()来忽略临时数据.但我还需要让会话将数据刷新到DB中.
请指教.谢谢你的帮助
我有一个名为“abc_integer”的列,它保存只有 2 个值 (1, 2) 的表的外键值。所以我想删除此列并添加一个新列“abc_enum” 注意:我正在 Postgres 9.3 版本中尝试此操作
CREATE TYPE abc_enum_type ENUM AS ('hi', 'hello');
ALTER TABLE abc ADD COLUMN abc_enum abc_enum_type ;
UPDATE abc SET abc_enum = CASE
WHEN abc_integer == 1 THEN 'hi'::abc_enum_type
ELSE 'hello'::abc_enum_type END ;
ALTER TABLE abc DROP COLUMN abc_intger;
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点?喜欢在单个语句中容纳所有这些改变类型并使用 USING 子句重命名?
提前致谢!