PowerDesigner 无法从物理数据模型生成数据库
PowerDesigner fails to generate database from physical data model
我正在尝试使用 Powerdesigner 工具生成 DDL 脚本。有一个准备好的物理数据模型,它描述了基于 Sybase IQ 的数据仓库结构(包含 tables、视图、域、dbspaces ...)。
详细版本控制:PowerDesigner 16.6 (SP6)、Sybase IQ 12.4.3
这个模型里面有很多子包,在这些子包下可以找到实际的物理图,其中包含表、引用、视图和视图引用。
如果我在上图描述的话,有一个"FINANCIAL"物理数据模型,它有子包"BANK_MAIN",这个有另一个子包"BK_ACCT_KEY_MEAS"和下这是一个打开的物理图,名称为 "BK_ACCT_KEY_MEAS"。可以看到多个维度tables和一个事实table.
所以我按 CTRL + G(或菜单数据库/生成数据库)继续生成 DDL。我试图限制不同的设置(所有对象,只是 tables 和视图和其他)但其中 none 显示了期望的结果。
如果我限制为 "tables and views" 我可以看到这个内容:
disconnect;
drop database 'BASE_MODEL.db';
/*==============================================================*/
/* Database: BASE_MODEL */
/*==============================================================*/
create database 'BASE_MODEL.db';
start database BASE_MODEL;
connect database BASE_MODEL;
基本上缺少对任何 table 或视图的引用。我仍在阅读相应的文档,但没有找到任何可以指导我得出结果的相关信息。
有人可以帮我吗?
为数据库生成 DDL 的正确方法是打开主包下的任何物理模型(在本例中为 "FINANCIAL")。下一步是点击 CTRL + G(或菜单数据库/生成数据库),然后正确设置环境以生成。由于此模型包包含许多不同的包,因此在选择选项卡下有一个魔术按钮 "Include Sub-Objects"。激活此按钮允许 select 整个模型包中提到的所有对象(在选项卡 "tables" 和 "views" 中)。下图简要显示了此描述。
以下是有效和所需的 DDL 输出的一部分:
disconnect;
drop database 'BASE_MODEL.db';
/*==============================================================*/
/* Database: BASE_MODEL */
/*==============================================================*/
create database 'BASE_MODEL.db';
start database BASE_MODEL;
connect database BASE_MODEL;
/*==============================================================*/
/* Table: A_ACCT_DETAIL_SUMM */
/*==============================================================*/
create table _O_W_N_E_R_.A_ACCT_DETAIL_SUMM (
ACCOUNT_ID SYB_ID not null,
ACCT_TXN_TYP_ID SYB_ID not null,
ACCT_STATUS_ID SYB_ID not null,
PRODUCT_ID SYB_ID not null,
GEO_ID SYB_ID not null,
MONTH_ID SYB_ID not null,
DEMO_ID SYB_ID,
ISO_CRCY_ID SYB_ID,
REF_ISO_CRCY_ID SYB_ID,
...
我正在尝试使用 Powerdesigner 工具生成 DDL 脚本。有一个准备好的物理数据模型,它描述了基于 Sybase IQ 的数据仓库结构(包含 tables、视图、域、dbspaces ...)。 详细版本控制:PowerDesigner 16.6 (SP6)、Sybase IQ 12.4.3
这个模型里面有很多子包,在这些子包下可以找到实际的物理图,其中包含表、引用、视图和视图引用。
如果我在上图描述的话,有一个"FINANCIAL"物理数据模型,它有子包"BANK_MAIN",这个有另一个子包"BK_ACCT_KEY_MEAS"和下这是一个打开的物理图,名称为 "BK_ACCT_KEY_MEAS"。可以看到多个维度tables和一个事实table.
所以我按 CTRL + G(或菜单数据库/生成数据库)继续生成 DDL。我试图限制不同的设置(所有对象,只是 tables 和视图和其他)但其中 none 显示了期望的结果。
如果我限制为 "tables and views" 我可以看到这个内容:
disconnect;
drop database 'BASE_MODEL.db';
/*==============================================================*/
/* Database: BASE_MODEL */
/*==============================================================*/
create database 'BASE_MODEL.db';
start database BASE_MODEL;
connect database BASE_MODEL;
基本上缺少对任何 table 或视图的引用。我仍在阅读相应的文档,但没有找到任何可以指导我得出结果的相关信息。
有人可以帮我吗?
为数据库生成 DDL 的正确方法是打开主包下的任何物理模型(在本例中为 "FINANCIAL")。下一步是点击 CTRL + G(或菜单数据库/生成数据库),然后正确设置环境以生成。由于此模型包包含许多不同的包,因此在选择选项卡下有一个魔术按钮 "Include Sub-Objects"。激活此按钮允许 select 整个模型包中提到的所有对象(在选项卡 "tables" 和 "views" 中)。下图简要显示了此描述。
disconnect;
drop database 'BASE_MODEL.db';
/*==============================================================*/
/* Database: BASE_MODEL */
/*==============================================================*/
create database 'BASE_MODEL.db';
start database BASE_MODEL;
connect database BASE_MODEL;
/*==============================================================*/
/* Table: A_ACCT_DETAIL_SUMM */
/*==============================================================*/
create table _O_W_N_E_R_.A_ACCT_DETAIL_SUMM (
ACCOUNT_ID SYB_ID not null,
ACCT_TXN_TYP_ID SYB_ID not null,
ACCT_STATUS_ID SYB_ID not null,
PRODUCT_ID SYB_ID not null,
GEO_ID SYB_ID not null,
MONTH_ID SYB_ID not null,
DEMO_ID SYB_ID,
ISO_CRCY_ID SYB_ID,
REF_ISO_CRCY_ID SYB_ID,
...