【发布时间】:2022-09-24 07:55:40
【问题描述】:
如何将代码库从 ndb 迁移到 SQLalchemy?
很想写一个解析器/发射器,接收我的代码库的 40+ ndb.Model 并生成 sqlalchemy.schema.Table 或 Base inheriting classes。但这不会:
- 解决数据迁移问题;
- 没有启用中间道路,我可以在迁移前访问数据;
- 需要手动迁移所有查询语法
很高兴做这项工作,但在这里询问以防万一有更好的方法(例如,我看到了这个 10 年前的问题 Can SQLAlchemy be used with Google Cloud SQL? ;或者可能是某种将架构直接从 ndb 转储到 SQL 然后从 SQL直接到 SQLalchemy)。
-
几年前我从事过这样一个项目。我认为更改代码最有希望的方法是 AST 重写(我们当时看过 Red Baron,如果 libcst 是 Python3 会更好)。最后,我们采用了手动方法,因为从 No-SQL 迁移到关系需要对数据模型进行大量更改。迁移方面,我确实考虑将数据存储下载为协议缓冲区并转换并加载到 MySQL,但最终通过远程 shell 运行脚本(速度不快,但我们的数据相对较小)。
标签: python google-app-engine sqlalchemy google-cloud-datastore ndb