小编Sha*_*kar的帖子

使用marshmallow sql-alchemy对象时避免使用DB Session添加marshmallow对象

有没有办法避免在使用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中.

请指教.谢谢你的帮助

python sqlalchemy flask flask-sqlalchemy marshmallow

5
推荐指数
1
解决办法
1076
查看次数

在 Postgres 中将类型 Integer 更改为 Enum

我有一个名为“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 子句重命名?

提前致谢!

sql postgresql enums casting

2
推荐指数
1
解决办法
1828
查看次数