export - 企业架构师——改变整个模型中的数据类型

标签 export database-migration type-conversion enterprise-architect

我正在尝试使用 Enteprise Architect 将数据库架构从 Sybase 迁移到 Oracle。

流程如下:

  • 从 Sybase 导入表,
  • 根据需要更改架构(添加、删除、重命名 列,更改数据类型...),
  • 将模式导出为 Oracle 的 DDL(创建表、键等 - dump.sql)。

但我发现了 EA 不会“根据平台”更改数据类型的问题。例如,Sybase 使用的是“日期时间”,而我需要 Oracle 的“时间戳”。

有什么方法可以改变整个模型的一种数据类型吗?

是的,可以在生成的 dump.sql 上使用 Ctrl+H 并替换这些数据类型,但我想在EA(我希望在不向后导入的情况下为生成的 Oracle 数据库提供相应的 EA 模式)。

非常感谢!

J.

最佳答案

要进行这样的转换,没有“干净”的方法,因为您要进行大量更改。无论如何,有 2 种方法:

  1. 使用 API:在 t_attribute 中查找元素

    Repository.SQLQuery("SELECT ea_guid FROM t_attribute WHERE stereotype = 'column' AND type='datetime'")
    

    现在使用 XML 结果读取相应的属性并更改类型:

    attr = Repository.GetAttributeByGUID(<theGuid>)
    attr.type = 'timestamp'
    attr.update()
    
  2. 只需使用直接 SQL 和 native 数据库客户端执行上述操作:

    UPDATE t_attribute SET type='timestamp' WHERE stereotype = 'column' AND type='datetime'
    

第一个变体更干净一些,但第二个变体并没有那么不安全。在投入生产之前,先尝试在您的存储库的副本上。

关于export - 企业架构师——改变整个模型中的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39833509/

相关文章:

java - Eclipse 不导出外部 jar 库

javascript - 如何公开 ES6 block 内的数据?

java - Grails dbm-update失败:MySQLSyntaxErrorException:SQL语法有错误

ruby-on-rails - Ruby on Rails - 无效日期

java - 如何在 MySQL 的列中保留 1 和 0 的序列?

Java - XLSX 解析和数据库导出

sql-server - 如何使用命令行将本地数据库作为 bacpac 直接导出到 AZURE blob

mysql - 用于 MS SQL 到 SQL 数据迁移的开源工具(不同架构)

mysql - Django 1.8 迁移 "Table already exists"

javascript - 如何在 Javascript 中将一个变量转换为另一个变量的类型