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

时间:2016-05-13 05:04:39

标签: python sqlalchemy database-schema desktop-application alembic

---更新更清晰---

我面前有很多任务,我希望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声明。这将定义映射,以及已经基于代码的转换器的任何调用(日期转换等)。

有关需要从一个数据库格式迁移到另一个的数据库格式的示例,请参阅https://cloudup.com/cYzP2lCQjbo

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

0 个答案:

没有答案