首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Acumatica自定义MySql

问Acumatica自定义MySql
EN

Stack Overflow用户
提问于 2017-12-04 06:05:33
回答 1查看 536关注 0票数 0

我们面临以下问题。我们在MySQL数据库的系统下开发定制包。所有数据库更改都从自定义页面添加到自定义中。

现在,当我们在MySQL数据库上发布系统下的自定义时,我们会看到与MySQL和MySQL之间的差异相关的错误。我已经回顾了Acumatica为数据库更改生成的xml,并且有一些不同之处,例如:

  1. 当从数据库生成时,MySQL时间戳设置为默认值。
  2. 主键约束在从MySQL生成时具有名称主。

我们如何解决这个问题,这样我们就不必有两个不同的包,一个用于MySQL,另一个用于MySQL?

下面是Acumatica如何在MySql情况下为CS属性生成脚本:

代码语言:javascript
复制
  <Sql TableName="csattribute" TableSchemaXml="#CDATA">
  <CDATA name="TableSchemaXml"><![CDATA[<table name="csattribute">
  <col name="CompanyID" type="Int" default="Zero" />
  <col name="AttributeID" type="NVarChar(30)" />
  <col name="Description" type="NVarChar(60)" />
  <col name="ControlType" type="Int" />
  <col name="EntryMask" type="VarChar(60)" nullable="true" />
  <col name="RegExp" type="NVarChar(60)" nullable="true" />
  <col name="List" type="NVarChar(MAX)" nullable="true" />
  <col name="IsInternal" type="Bit" nullable="true" />
  <col name="tstamp" type="Timestamp" default="CurrentDateTime" />
  <col name="CreatedByID" type="UniqueIdentifier" />
  <col name="CreatedByScreenID" type="Char(8)" />
  <col name="CreatedDateTime" type="DateTime" />
  <col name="LastModifiedByID" type="UniqueIdentifier" />
  <col name="LastModifiedByScreenID" type="Char(8)" />
  <col name="LastModifiedDateTime" type="DateTime" />
  <col name="NoteID" type="UniqueIdentifier" />
  <index name="CSAttribute_NoteID">
    <col name="NoteID" />
    <col name="CompanyID" />
  </index>
  <index name="PRIMARY" clustered="true" primary="true" unique="true">
    <col name="AttributeID" />
    <col name="CompanyID" />
  </index>
</table>]]></CDATA>
</Sql>

对于MS,则使用相同的表:

代码语言:javascript
复制
    <Sql TableName="csattribute" TableSchemaXml="#CDATA">
        <CDATA name="TableSchemaXml"><![CDATA[<table name="csattribute">
  <col name="CompanyID" type="Int" default="Zero" />
  <col name="AttributeID" type="NVarChar(30)" />
  <col name="Description" type="NVarChar(60)" />
  <col name="ControlType" type="Int" />
  <col name="EntryMask" type="VarChar(60)" nullable="true" />
  <col name="RegExp" type="NVarChar(60)" nullable="true" />
  <col name="List" type="NVarChar(MAX)" nullable="true" />
  <col name="IsInternal" type="Bit" nullable="true" />
  <col name="tstamp" type="Timestamp"/>
  <col name="CreatedByID" type="UniqueIdentifier" />
  <col name="CreatedByScreenID" type="Char(8)" />
  <col name="CreatedDateTime" type="DateTime" />
  <col name="LastModifiedByID" type="UniqueIdentifier" />
  <col name="LastModifiedByScreenID" type="Char(8)" />
  <col name="LastModifiedDateTime" type="DateTime" />
  <col name="NoteID" type="UniqueIdentifier" />
  <index name="CSAttribute_NoteID">
    <col name="NoteID" />
    <col name="CompanyID" />
  </index>
  <index name="CSAttribute_PK" clustered="true" primary="true" unique="true">
    <col name="CompanyID" />
    <col name="AttributeID" />
  </index>
</table>]]></CDATA>
    </Sql>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-05 13:01:48

如果使用以下关键字,则可以指示项目中的自定义SQL脚本中的脚本是否应专门为MySQL或MySQL运行.

对于MySQL语句,请使用以下方法:

代码语言:javascript
复制
--[mssql: Skip]
--[mysql: Native]
-- include your MySQL Code here...

对于MS语句,请使用以下命令:

代码语言:javascript
复制
--[mssql: Native]
--[mysql: Skip]
-- include your MS SQL Code here...

这些sql脚本属性在Acumatica站点的帮助中可用:自定义指南>管理项目中的项>数据库脚本>以向项目 (公益文章 )添加自定义SQL脚本

这一信息以2017R2为基础。您必须测试并确认它在6.1中的使用。

下面是我目前在2017R2中使用的一个示例。请注意,需要以6.1中的顺序运行脚本的重要性,您可能必须将脚本命名为某种特定的顺序(Ex:使用“升级.”)。跑到最后还是“AUpgrade.”(先跑)。在2017R2中,您可以设置控制执行顺序的优先级值,甚至在编辑脚本窗口中也有一个“指定数据库引擎”按钮,它将为您添加属性。

​

​

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47627401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档