使用Python、SQLAlchemy和Alembic在数据库之间进行高级迁移

使用Python、SQLAlchemy和Alembic在数据库之间进行高级迁移,python,sqlalchemy,database-schema,desktop-application,alembic,Python,Sqlalchemy,Database Schema,Desktop Application,Alembic,---更新为更清晰--- 我有相当多的任务摆在我面前,我希望Alembic和SQLAlchemy可以做我需要的 我想开发一个桌面应用程序,帮助将数据从一个SQLite数据库迁移到一个完全不同的模型,然后再迁移回来。那么,迁移对吗?这一切都很好,但我需要确保,如果我没有对特定的列/表进行建模,那么它已正确地移植到一个表中,稍后将读取该表以重建数据库 例如: DB 1: Table names ID First Name Last Name Table address

---更新为更清晰---

我有相当多的任务摆在我面前,我希望Alembic和SQLAlchemy可以做我需要的

我想开发一个桌面应用程序,帮助将数据从一个SQLite数据库迁移到一个完全不同的模型,然后再迁移回来。那么,迁移对吗?这一切都很好,但我需要确保,如果我没有对特定的列/表进行建模,那么它已正确地移植到一个表中,稍后将读取该表以重建数据库

例如:

DB 1:
Table names
    ID
    First Name
    Last Name
Table address
    Street 1
    Street 2
    City
    State

DB2:
Table givenName
    ID
    name
Table Surname
    ID
    Name
比如说,使用alembic,我映射了以下内容:

DB1 names.firstname => DB2 givenName.name
DB1 names.lastname => DB2 surname.name
但是假设我想使用到端口DB1到DB2的迁移,将未知数据存储在某个地方,然后在从DB2->DB1开始时正确地重建它

所以我想象这是一张各种各样的细木工桌子

DB2
Table Joiner
    table_name
    column_name
    data
问题是我希望这一切都是完全动态的,这样就不会丢失任何信息

现在让我们增加一个额外的复杂性,我想构造一个排序生成器,这样我就可以简单地传递新的XML/JSON声明。这将定义映射,以及对已经基于代码的转换器的任何调用(日期转换等)

有关需要从一种数据库格式迁移到另一种数据库格式的示例,请参见


我的问题是,使用SQLAlchemy和Alembic,这是否可能或可以想象。这有多可行?有什么想法吗?

如果你给我们一些数据的例子,可能会更好。这太抽象了。更不用说,所以一般也会推广发布代码。有吗?。这里还不清楚master和sqlite之间的区别。此外,老实说,这似乎是一个大问题,需要作为一个问题来解决,非常开放。在我进入兔子洞之前,看看SQLAlchemy是否可以以这种方式作为迁移工具的高级概念。;)如果你给我们举一些数据的例子可能会更好。这太抽象了。更不用说,所以一般也会推广发布代码。有吗?。这里还不清楚master和sqlite之间的区别。此外,老实说,这似乎是一个大问题,需要作为一个问题来解决,非常开放。在我进入兔子洞之前,看看SQLAlchemy是否可以以这种方式作为迁移工具的高级概念。;)