PowerDesigner无法从物理数据模型生成数据库

时间:2019-05-23 21:32:59

标签: sybase-iq powerdesigner

我正在尝试使用Powerdesigner工具生成DDL脚本。有一个准备好的物理数据模型,该模型描述了基于Sybase IQ的数据仓库的结构(包含表,视图,域,dbspace等)。 详细的版本控制:PowerDesigner 16.6(SP6),Sybase IQ 12.4.3

此模型中包含许多子包,在这些子包下可以找到实际的物理图,其中包含表,参考,视图和视图参考。

PowerDesigner window

如果我在上图中描述它,则有一个“ FINANCIAL”物理数据模型,它具有子包“ BANK_MAIN”,它具有另一个子包“ BK_ACCT_KEY_MEAS”,并且在此下具有一个打开的物理图,名称为“ BK_ACCT_KEY_MEAS”。可以看到几个维度表和一个事实表。

因此,我按CTRL + G(或菜单“数据库” /“生成数据库”)以继续生成DDL。我试图限制不同的设置(所有对象,仅是表和视图等),但是没有一个显示出预期的结果。

如果我限制使用“表和视图”,则可以看到以下内容:

PS C:\users\js> Write-Output -InputObject 111,111,111 | Write-Output -InputObject { $_ -Replace 1,2 }

222
222
222

基本上缺少对任何表或视图的引用。我仍在阅读相应的文档,但是找不到任何相关信息可以指导我取得结果。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

为数据库生成DDL的正确方法是打开主程序包(在这种情况下为“ FINANCIAL”)下的任何物理模型。下一步是按CTRL + G(或菜单“数据库” /“生成数据库”),然后正确设置要生成的环境。由于此模型包包含许多不同的包,因此“选择”选项卡下有一个魔术按钮“包括子对象”。激活此按钮可以选择整个模型包中提到的所有对象(在“表”和“视图”选项卡中)。下图简要显示了此描述。

Selection tab 以下是有效和所需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,
 ...