问题标签 [schemacrawler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
40 浏览

schemacrawler - 如何获取视图定义?

我想从 PostgreSQL 模式中获取视图定义,以便我可以在目标数据库上创建相同的视图。除了视图所基于的表之外,我从 SchemaCrawler 获得了所有信息。这可能吗?或者 SchemaCrawler 是否可以包含基表名称而不是 View 定义?

我尝试设置 -parents 开关以查看视图是否包含“父”表,但我没有得到这样的信息。

[编辑]
这就是我得到的:

这就是我所期待的:

或者有一个类似 "parentTable": "my_table" 的条目,我可以使用它通过模板或代码构建 CREATE VIEW 脚本。

谢谢!

0 投票
1 回答
104 浏览

command-line - SchemaCrawler 16.12 版本命令行未创建我的 htmlx 输出

我正在使用最新版本的schemacrawler (16.1.2)生成嵌入在 HTML 输出中的 SVG 图表。但是,它不是创建图表,而是仅以文本形式打印表格信息。如果我使用旧版本的schemacrawler,它可以正常工作。我的机器上安装了 Graphviz。我做错了什么没有输出图表?

对于版本 16.1.2,我使用的这个版本的命令行不起作用

源 schemacrawler.sh --server=postgresql --host=hostname --database=db_name --user=username --password=password_name --info-level=standard --schemas=schema_name --command=schema --outputformat= htmlx --log-level=CONFIG > schemaGraph.html

对于版本 14.17,此版本的命令对我来说很好用

源 schemacrawler.sh -server=postgresql -host=hostname -database=db_name -user=username -password=password_name -infolevel=minimum -command=schema -outputformat=htmlx -loglevel=CONFIG > schemaGraph.html

0 投票
1 回答
32 浏览

database-design - 在 SchemaCrawler 中更改列注释的字体样式

有什么方法可以更改呈现为架构图像的列注释的字体样式?当前,使用例如https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.params.comment在 SQLAlchemy 中分配的列注释在 模式输出中呈现,但具有相同的样式列名称和类型。

例如,使用 SQLAlchemy 中的以下表定义:

我运行schemacrawler.sh-c schema --output-format=jpg附上了 JPG。 带有列注释的 schemacrawler 示例

0 投票
1 回答
36 浏览

schemacrawler - 您可以在 SchemaCrawler 中 grep/搜索不区分大小写吗?

是否有允许 SchemaCrawler 搜索数据库对象并忽略大小写的标志或选项?

以下示例将过滤掉以“API”开头的存储过程,即使它们是所需的输出:

--routines=.*api_Insert.*

0 投票
1 回答
48 浏览

schemacrawler - 输出 PostgreSQL 枚举类型

CREATE TYPE speedType AS ENUM ('kph', 'mph', 'mps');在 PostgreSQL 数据库中有一些自定义枚举类型(例如)。我可以使用 Schemacrawler 命令行工具输出它吗?

0 投票
1 回答
60 浏览

schemacrawler - 带有 Velocity 模板的 SchemaCrawler 行数?

是否可以使用速度模板获取表格行数?

如果有人以前做过,可以分享一下howTo吗?

提前致谢。

0 投票
1 回答
32 浏览

schemacrawler - SchemaCrawler 用户名和角色

我在我的项目中使用模式爬虫。有什么方法可以获取用户及其角色?目录对象不包含任何此类信息。

我正在使用这个配置:

0 投票
1 回答
169 浏览

oracle - Schemacrawler 无法以 JSON 格式从 DB2(和 Oracle)服务器输出模式

我正在尝试使用SchemaCrawler来提取 db2 测试数据库上的模式信息。

以文本或 html 格式运行schema命令时,一切正常:

现在我想以 JSON 格式输出它以进行数据集成。所以我尝试运行schema带有 json 格式输出的命令,但它失败了(此处为完整日志):

我也用命令serialize尝试过,它也失败了(完整日志在这里):

顺便说一句,在针对 Oracle 服务器运行时,我也面临着类似的问题。

所以,两个问题:

  1. 如何以 JSON 格式从 db2 服务器中提取模式信息?
  2. 我怎样才能为 Oracle 服务器做同样的事情?

谢谢你。

0 投票
1 回答
85 浏览

schemacrawler - SchemaCrawler Java API 检索检查列约束

根据这个问题及其评论,为了获得约束(我对检查约束特别感兴趣),必须执行以下操作:

  1. 包括.jar与他们选择的数据库驱动程序相对应的一个,例如schemacrawler-postgresqlschemacrawler-sqlite

  2. 将详细级别设置为detailed(或更高),如下所示:

  1. 使用Table.getTableConstraints()方法。

我已经包含.jar了 PostgreSQL、SQLite、MySQL 的文件,但我只得到了 PostgreSQL 的约束,而 SQLite 和 MySQL 的结果都是空的(不仅有检查约束,也没有空约束,但没有它们的迹象要么;可以通过检查列是否可以直接为空来检索此信息,但没有用于检查约束的此类 API)。有没有我没有考虑过的其他步骤?包括.jarfor MySQL 似乎有助于解决上面链接的问题。

我的依赖项如下:

0 投票
1 回答
99 浏览

schemacrawler - SchemaCrawler Java API:向 SchemaRetrievalOptions 添加新选项

我希望能够获取我正在获取元数据的表具有约束的列。为了做到这一点,我必须查找columns字段的值 a Constraint(或者,在我的情况下, ),并且通过调用(或者,在 Java 中, )MutableTableConstraint检索约束。table.tableConstraintsgetTableConstraints()

但是,columns列表是否实际填充似乎取决于SchemaRetrievalOptions(或者更准确地说,取决于SchemaCrawler 源文件中的informationSchemaViews.hasQuery(CONSTRAINT_COLUMN_USAGE)方法调用的结果;似乎是以某种方式构造的),它是从参数构造的该方法与 不同,它是由用户手动构建的。retrieveTableConstraintsColumnsTableConstraintRetriever.javainformationSchemaViewsSchemaRetrievalOptionsconnectionSchemaCrawlerUtility.getCatalog()SchemaCrawlerOptions

SchemaRetrievalOptions 取决于所使用的特定数据库:如果schemacrawler-postgresql包含依赖项,则选项将取决于该.jar文件的内容;并且该文件具有诸如postgresql.information_schema/CHECK_CONSTRAINTS.sql等之类的文件,这是某些检索选项的来源。

所以,问题是,有没有办法让我以编程方式影响,SchemaRetrievalOptions包括一个选项CONSTRAINT_COLUMN_USAGE?显然 SchemaCrawler 的命令行界面可以通过使用配置文件来实现这一点,但我使用的是 Java API 和与.jar每个 DB 方言相对应的文件,我无法真正手动更新包含我查询.jar.sql文件SELECT * FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE需要(我的意思是,我可以在本地使用,但不能用于分发)。

(SchemaCrawler 版本:16.9.3)