【问题标题】:Spring Roo Reverse Engineering of Large (Many Tables) PostgreSQL Database大型(多表)PostgreSQL数据库的Spring Roo逆向工程
【发布时间】:2026-01-02 11:45:01
【问题描述】:

背景:经过半小时左右的摆弄,并且感谢这里的一些答案,我能够哄 Spring Roo 对 booktown 示例 PostgreSQL 数据库进行逆向工程。问题是,数据库有很多表,以至于当我尝试运行生成的 Web 应用程序时,它会被堆栈跟踪。没问题。考虑到数据库的大小,这不是不合理的行为,IMO。

问题是,我尝试使用database reverse engineer 命令的--includeTables(以及后来的--excludeTables)选项将表的数量减少到合理的大小。但它没有用。没有标记语法错误,但无论我指定什么,所有表都包括在内。参考资料很清楚,操作数必须是空格分隔的表格列表,用双引号括起来,比如"Authors Books",就是我用的--includeTables。我用--excludeTables 列出了除这两个以外的所有表。

我似乎很清楚我正在处理另一个 Spring Roo 错误。但在我花费昂贵但必要的时间来创建干净且可重现的 JIRA 报告(使用比 booktown 小得多的数据库)之前,我想通过以下问题缩小错误的范围:


问题: 有没有人让--includeTables 或其双重身份--excludeTables 能够按照记录的方式运行?

如果是这样,请您描述一下具体情况,以便我了解它们与我的booktown 经验有何不同。而且,您是否在当前版本 1.2.5 下尝试过您的代码?

(我发现了几个明显的回归错误;也就是说,在早期版本下工作的功能在 1.2.5 下不起作用——例如嵌入式媒体,从 1.2.1 版本开始就失败了,为此我已提交 JIRA)。

非常感谢。

【问题讨论】:

    标签: spring-roo


    【解决方案1】:

    是的, 我已经让它工作了,即使使用 1.2.5,语法也适用于我。要尝试的一件事是删除 dbre.xml 文件,然后重新开始。您还可以使用“*”,如“MYBASETABLENAME*”,在排除项中一次捕获更多表-

    【讨论】:

    • 感谢您的健全性检查和修复,我有信心。在测试中,我多次输入相关命令而没有删除dbre.xml,因为我没有意识到这样做是我的工作。在我看来,这真的不应该是我的工作。但是,我曾经被告知(我记得一个名叫 Epimenides 的人)你永远不应该使用世界“应该”来指代软件:-/