database - 如何在 Intershop7.9 中为自定义对象创建数据库表
问题描述
我们正在尝试在 Intershop 数据库中插入自定义对象的表。我们正在通过 EDL 文件创建 ORM 模型并使用“Intershop Code generator for version 7.2 and later”生成代码,但是没有为表生成 DDL 模式的选项,这在 Enfinity Studio 6.4 中是可能的。
代码生成器屏幕截图 - Intershop 7 Studio
在 Intershop 支持站点上有关于如何在 dbinit 期间仅执行 DDL 准备程序的描述,但仅适用于处于 beta 阶段的 7.10 版本。
是否可以仅在 Intershop 7.9 中初始化自定义数据库表或生成可以直接在数据库上执行的 DDL 模式?我们不希望每次需要在数据库中创建新的自定义对象时都运行整个 dbinit 进程。
解决方案
对于 7.x,您不需要生成用于创建表的 DDL。现在由准备处理。您可以使用这些 dbmigration 准备为您创建表。
Class1 = com.intershop.beehive.core.dbmigrate.preparer.database.DatabaseTablesPreparer
Class2 = com.intershop.beehive.core.dbmigrate.preparer.database.DatabaseIndexesPreparer \
resources/custom_cartridge/dbinit/scripts/1.0.0.0/dbindex.ddl
Class3 = com.intershop.beehive.core.dbmigrate.preparer.database.DatabaseConstraintsPreparer \
resources/custom_cartridge/dbinit/scripts/1.0.0.0/dbconstraints.ddl
正如您在上面看到的,您仍然可以获得约束和索引的 DDL
推荐阅读
- generics - 使用泛型函数制作盒装特征会返回错误
- r - 如何根据两个条件从数据集中检索值并附加到另一个数据集
- windows - Windows Server - 有没有办法通过特定程序获取一段时间内的 CPU 使用情况?
- node.js - Intellisence 在 Node.js 的 Visual Studio 代码中不起作用
- java - 我的用于比较两个区域 id 时间的 java 程序显示错误
- c++ - 我可以使用一个类来控制 C++ 中另一个类的对象吗?(阿杜诺)
- mysql - mysql-docker-container - ERROR 1045 (28000): Access denied for user 'root'@'localhost' (使用密码: NO)
- activerecord - Rails 6 子类不会自动创建自己的类型
- ios - 无法按下 NavigationBar 下方的 UIButton?
- kubernetes - 如何通过 Ansible 在 Pod 上使用 k8s 模块执行 shell 命令