【问题标题】:Migrate from `ndb` to SQLalchemy?从“ndb”迁移到 SQLalchemy?
【发布时间】:2022-09-24 07:55:40
【问题描述】:

如何将代码库从 ndb 迁移到 SQLalchemy

很想写一个解析器/发射器,接收我的代码库的 40+ ndb.Model 并生成 sqlalchemy.schema.TableBase inheriting classes。但这不会:

  1. 解决数据迁移问题;
  2. 没有启用中间道路,我可以在迁移前访问数据;
  3. 需要手动迁移所有查询语法

很高兴做这项工作,但在这里询问以防万一有更好的方法(例如,我看到了这个 10 年前的问题 Can SQLAlchemy be used with Google Cloud SQL? ;或者可能是某种将架构直接从 ndb 转储到 SQL 然后从 SQL直接到 SQLalchemy)。

  • 几年前我从事过这样一个项目。我认为更改代码最有希望的方法是 AST 重写(我们当时看过 Red Baron,如果 libcs​​t 是 Python3 会更好)。最后,我们采用了手动方法,因为从 No-SQL 迁移到关系需要对数据模型进行大量更改。迁移方面,我确实考虑将数据存储下载为协议缓冲区并转换并加载到 MySQL,但最终通过远程 shell 运行脚本(速度不快,但我们的数据相对较小)。

标签: python google-app-engine sqlalchemy google-cloud-datastore ndb


【解决方案1】:

要迁移,您需要编写一个迁移脚本,将数据从 ndb 复制到 SQL。你不能自动完成。你不能部分地做到这一点。您不能以允许您在迁移之前访问数据的方式执行此操作。没有手工工作是做不到的。如果不编写解析器/发射器,您将无法做到这一点。如果不编写迁移脚本,您将无法做到这一点。

【讨论】:

    猜你喜欢
    • 2020-06-17
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 2011-10-10
    相关资源
    最近更新 更多