问题标签 [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.
schemacrawler - 如何获取视图定义?
我想从 PostgreSQL 模式中获取视图定义,以便我可以在目标数据库上创建相同的视图。除了视图所基于的表之外,我从 SchemaCrawler 获得了所有信息。这可能吗?或者 SchemaCrawler 是否可以包含基表名称而不是 View 定义?
我尝试设置 -parents 开关以查看视图是否包含“父”表,但我没有得到这样的信息。
[编辑]
这就是我得到的:
这就是我所期待的:
或者有一个类似 "parentTable": "my_table" 的条目,我可以使用它通过模板或代码构建 CREATE VIEW 脚本。
谢谢!
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
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 示例
schemacrawler - 您可以在 SchemaCrawler 中 grep/搜索不区分大小写吗?
是否有允许 SchemaCrawler 搜索数据库对象并忽略大小写的标志或选项?
以下示例将过滤掉以“API”开头的存储过程,即使它们是所需的输出:
--routines=.*api_Insert.*
schemacrawler - 输出 PostgreSQL 枚举类型
我CREATE TYPE speedType AS ENUM ('kph', 'mph', 'mps');
在 PostgreSQL 数据库中有一些自定义枚举类型(例如)。我可以使用 Schemacrawler 命令行工具输出它吗?
schemacrawler - 带有 Velocity 模板的 SchemaCrawler 行数?
是否可以使用速度模板获取表格行数?
如果有人以前做过,可以分享一下howTo吗?
提前致谢。
schemacrawler - SchemaCrawler 用户名和角色
我在我的项目中使用模式爬虫。有什么方法可以获取用户及其角色?目录对象不包含任何此类信息。
我正在使用这个配置:
oracle - Schemacrawler 无法以 JSON 格式从 DB2(和 Oracle)服务器输出模式
我正在尝试使用SchemaCrawler来提取 db2 测试数据库上的模式信息。
以文本或 html 格式运行schema
命令时,一切正常:
现在我想以 JSON 格式输出它以进行数据集成。所以我尝试运行schema
带有 json 格式输出的命令,但它失败了(此处为完整日志):
我也用命令serialize
尝试过,它也失败了(完整日志在这里):
顺便说一句,在针对 Oracle 服务器运行时,我也面临着类似的问题。
所以,两个问题:
- 如何以 JSON 格式从 db2 服务器中提取模式信息?
- 我怎样才能为 Oracle 服务器做同样的事情?
谢谢你。
schemacrawler - SchemaCrawler Java API 检索检查列约束
根据这个问题及其评论,为了获得约束(我对检查约束特别感兴趣),必须执行以下操作:
包括
.jar
与他们选择的数据库驱动程序相对应的一个,例如schemacrawler-postgresql或schemacrawler-sqlite。将详细级别设置为
detailed
(或更高),如下所示:
- 使用
Table.getTableConstraints()
方法。
我已经包含.jar
了 PostgreSQL、SQLite、MySQL 的文件,但我只得到了 PostgreSQL 的约束,而 SQLite 和 MySQL 的结果都是空的(不仅有检查约束,也没有空约束,但没有它们的迹象要么;可以通过检查列是否可以直接为空来检索此信息,但没有用于检查约束的此类 API)。有没有我没有考虑过的其他步骤?包括.jar
for MySQL 似乎有助于解决上面链接的问题。
我的依赖项如下:
schemacrawler - SchemaCrawler Java API:向 SchemaRetrievalOptions 添加新选项
我希望能够获取我正在获取元数据的表具有约束的列。为了做到这一点,我必须查找columns
字段的值 a Constraint
(或者,在我的情况下, ),并且通过调用(或者,在 Java 中, )MutableTableConstraint
检索约束。table.tableConstraints
getTableConstraints()
但是,columns
列表是否实际填充似乎取决于SchemaRetrievalOptions
(或者更准确地说,取决于SchemaCrawler 源文件中的informationSchemaViews.hasQuery(CONSTRAINT_COLUMN_USAGE)
方法调用的结果;似乎是以某种方式构造的),它是从参数构造的该方法与 不同,它是由用户手动构建的。retrieveTableConstraintsColumns
TableConstraintRetriever.java
informationSchemaViews
SchemaRetrievalOptions
connection
SchemaCrawlerUtility.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)