【问题标题】:Moving data between databases using SQLAlchemy使用 SQLAlchemy 在数据库之间移动数据
【发布时间】:2018-09-18 17:21:39
【问题描述】:

我有 2 个由相同的 alembic 脚本创建的相同数据库。一个是生产中使用的数据,第二个是空的。我需要将一些数据从一个移动到另一个。有什么优雅的方法可以做到这一点吗? (请假设自动生成的id 在数据库中不能也不需要相同。)

我在考虑 2 种可能的解决方案 -> 从一个 db expunge_all() 中选择我想要的所有并将它们添加到另一个,或者使用 __dict__ 进行一些技巧。哪个更优雅?

【问题讨论】:

  • 看来你最好使用数据库的转储工具。
  • 嗯,我想复制几百万条记录中的 30 条记录。已通过expunge_all()管理
  • 这是添加到问题中的好信息,因为它会影响解决方案的选择。无论如何,对于转储,您或许可以考虑使用核心,因此无需在会话等之间移动对象,因为您不需要(?)此类任务的所有 ORM 功能。
  • 是的,谢谢,这似乎很有用,因为我很快就会在两个生产数据库之间做类似的事情。谢谢!

标签: python session sqlalchemy


【解决方案1】:
copy = db1.query(SomeModel).filter(SomeModel.someattr == some_attr).all()
db1.expunge_all()
for c in copy:
    db2.add(c)
db2.commit()

这似乎运作良好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2016-11-29
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多