CLI 命令:管理
管理 命令接受带有操作列表的 JSON 输入,依次执行这些操作,并输出包含结果的 JSON 数组。 这是创建、修改和删除数据源以及管理驱动程序构件的主要命令。
- 语法
- datagrip.exe dataSources manage -p <project_path> -i <input_path> -o <output_path>
- 示例
- datagrip.exe dataSources manage -p C:\my_projects\cli_for_data_sources\ -i C:\data_source_jsons\input.json -o C:\data_source_jsons\output.json
- 语法
- datagrip dataSources manage -p <project_path> -i <input_path> -o <output_path>
- 示例
- datagrip dataSources manage -p ~/my_projects/cli_for_data_sources/ -i ~/data_source_jsons/input.json -o ~/data_source_jsons/output.json
- 语法
- datagrip.sh dataSources manage -p <project_path> -i <input_path> -o <output_path>
- 示例
- datagrip.sh ataSources manage -p ~/my_projects/cli_for_data_sources/ -i ~/data_source_jsons/input.json -o ~/data_source_jsons/output.json
选项
- -p,--project
项目目录路径。
必需:是
- -i,--input
输入文件路径。 如果省略,则从标准输入读取 DataGrip。
必需:否
- -o,--output
输出文件路径。 如果省略,DataGrip 会写入到 stdout。
必需:否
- --input-schema},{
返回可用于验证输入 JSON 的 JSON schema。
必需:否
- --output-schema
返回可用于验证输出 JSON 的 JSON schema。
必需:否
--input-schema},{ 和 --input-schema},{ 选项不管理数据源,因此与它们一起使用时, -p、 -i 和 -o 会被忽略。
输入格式
在 actions 数组中,每个元素是一个只有一个键(操作名称)的 JSON 对象。 该键的值为操作参数对象。
输出格式
对于 管理 命令,输出格式为 JSON 数组,每个元素对应输入中的操作。 在输出和输入中,元素与操作的顺序一致。
成功时,条目包含 "result" ,其内容为操作特定的结果数据。 失败时,条目包含 "error" ,其内容为错误消息。
有关支持的操作列表,请参阅 操作。
常用类型
DataSourceFilter
DataGrip 使用此筛选器匹配数据源。 要匹配数据源,所有指定字段必须匹配。 如果所有字段都是 null ,则筛选器不会匹配任何内容。
这些字段包含关于数据源的信息:
- id
唯一标识符。
- name
显示名称。
- dbmsName
DBMS 名称。 例如,
"POSTGRES"、"MYSQL"或"ORACLE"。 区分大小写。
UpdatedDataSourceInfo
在创建或修改操作后返回。
这些字段包含关于数据源的信息:
- id
唯一标识符。
- name
显示名称。
- url
JDBC URL。
操作
createDataSource
在项目中创建一个新的数据源。
参数
- name
新数据源的显示名称。
- driverId
显式驱动程序 ID。 如果提供该参数,则
dbmsName参数会被忽略。- dbmsName
用于自动驱动程序搜索的 DBMS 名称。 例如,
"POSTGRES","MYSQL"。- url
JDBC URL。
必须提供
url或connectionParams。- connectionParams
用于根据驱动程序的 URL 模板生成 URL 的键值连接参数。
驱动程序通过 driverId 和 dbmsName 字段解析。 如果提供了 driverId, dbmsName 会被忽略,驱动程序将通过提供的 ID 查找。 否则,将通过匹配 dbmsName 或 url 与已注册驱动程序解析驱动程序。
URL 通过 url 和 connectionParams 字段解析。 如果提供了 url ,则直接使用其值。 如果同时提供了 connectionParams 但未提供 url ,则从已解析驱动程序的 URL 模板和给定参数生成 URL。 如果未提供任何参数,则返回错误。
此命令在 JSON 输出中的结果如下:
示例
输入 JSON 文件 action_create_in.json :
{ "actions": [ { "createDataSource": { "name": "My PostgreSQL", "dbmsName": "POSTGRES", "url": "jdbc:postgresql://localhost:5432/mydb" } } ] }CLI 命令:
datagrip.exe dataSources manage -p C:\my_projects\cli_for_data_sources\ -i C:\data_source_jsons\action_create_in.json -o C:\data_source_jsons\action_create_out.jsondatagrip dataSources manage -p ~/my_projects/cli_for_data_sources/ -i ~/data_source_jsons/action_create_in.json -o ~/data_source_jsons/action_create_out.jsondatagrip.sh dataSources manage -p ~/my_projects/cli_for_data_sources/ -i ~/data_source_jsons/action_create_in.json -o ~/data_source_jsons/action_create_out.json输出 JSON 文件 action_create_out.json :
[ { "action": "createDataSource", "result": { "createdDataSource": { "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "name": "My PostgreSQL", "url": "jdbc:postgresql://localhost:5432/mydb" } } } ]
deleteDataSource
删除与指定筛选器匹配的数据源。 每个筛选器独立进行评估。 若数据源匹配任一筛选器,则会被删除。
参数
- 筛选器
筛选器 列表。 若数据源匹配任一提供的筛选器,则会被删除。
示例
输入 JSON 文件 action_delete_in.json :
{ "actions": [ { "deleteDataSource": { "filters": [ { "name": "Old Database" }, { "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" } ] } } ] }CLI 命令:
datagrip.exe dataSources manage -p C:\my_projects\cli_for_data_sources\ -i C:\data_source_jsons\action_delete_in.json -o C:\data_source_jsons\action_delete_out.jsondatagrip dataSources manage -p ~/my_projects/cli_for_data_sources/ -i ~/data_source_jsons/action_delete_in.json -o ~/data_source_jsons/action_delete_out.jsondatagrip.sh dataSources manage -p ~/my_projects/cli_for_data_sources/ -i ~/data_source_jsons/action_delete_in.json -o ~/data_source_jsons/action_delete_out.json输出 JSON 文件 action_delete_out.json :
[ { "action": "deleteDataSource", "result": { "deletedIds": [ "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "b2c3d4e5-f6a7-8901-bcde-f12345678901" ] } } ]
modifyDataSource
参数
modifyDataSource 用于修改现有数据源。 筛选条件必须准确匹配一个数据源。 如果没有或有多于一个数据源匹配条件,将返回错误。
必须至少提供以下字段之一: name、 url、 driverId 或 connectionParams。
- 过滤器
用于标识数据源的筛选器。 条件必须准确匹配一个数据源。
- name
新显示名称。
- driverId
新驱动程序 ID。 更改与数据源关联的驱动程序。
- url
新的 JDBC URL。
- connectionParams
键值连接参数。 这些参数可帮助使用当前驱动程序的 URL 模板生成新的 URL。
如果同时提供了
url字段,则此字段会被忽略。 也已提供。
URL 通过 url 或 connectionParams 字段进行更新。 如果提供了 url 字段,则直接使用其值。 如果仅提供 connectionParams ,则使用当前驱动程序的 URL 模板和参数生成新的 URL。 如果还提供了 driverId ,则会先更新驱动程序,然后 connectionParams 会使用新驱动程序。
此命令在 JSON 输出中的结果如下:
示例
输入 JSON 文件 action_modify_in.json :
{ "actions": [ { "modifyDataSource": { "filter": { "name": "My PostgreSQL" }, "name": "Production PostgreSQL", "url": "jdbc:postgresql://prod-host:5432/mydb" } } ] }CLI 命令:
datagrip.exe dataSources manage -p C:\my_projects\cli_for_data_sources\ -i C:\data_source_jsons\action_modify_in.json -o C:\data_source_jsons\action_modify_out.jsondatagrip dataSources manage -p ~/my_projects/cli_for_data_sources/ -i ~/data_source_jsons/action_modify_in.json -o ~/data_source_jsons/action_modify_out.jsondatagrip.sh dataSources manage -p ~/my_projects/cli_for_data_sources/ -i ~/data_source_jsons/action_modify_in.json -o ~/data_source_jsons/action_modify_out.json输出 JSON 文件 action_modify_out.json :
[ { "action": "modifyDataSource", "result": { "modifiedDataSource": { "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "name": "Production PostgreSQL", "url": "jdbc:postgresql://prod-host:5432/mydb" } } } ]
updateArtifactList
从远程仓库刷新可用数据库构件(驱动程序)列表。 该操作不带参数,通常应在 downloadArtifacts 或 setUpRecommendedArtifacts 前调用,以确保构件目录为最新。
参数
无。 空对象 {}。
此命令在 JSON 输出中的结果如下:
示例
输入 JSON 文件 action_updateArtifacts_in.json :
{ "actions": [ { "updateArtifactList": {} } ] }CLI 命令:
datagrip.exe dataSources manage -p C:\my_projects\cli_for_data_sources\ -i C:\data_source_jsons\action_updateArtifacts_in.json -o C:\data_source_jsons\action_updateArtifacts_out.jsondatagrip dataSources manage -p ~/my_projects/cli_for_data_sources/ -i ~/data_source_jsons/action_updateArtifacts_in.json -o ~/data_source_jsons/action_updateArtifacts_out.jsondatagrip.sh dataSources manage -p ~/my_projects/cli_for_data_sources/ -i ~/data_source_jsons/action_updateArtifacts_in.json -o ~/data_source_jsons/action_updateArtifacts_out.json输出 JSON 文件 action_updateArtifacts_out.json :
[ { "action": "updateArtifactList", "result": { "status": "ok" } } ]
downloadArtifacts
通过它们的构件令牌下载指定的数据库构件(如 JDBC 驱动 JAR 包)。
参数
- artifactTokens
要下载的构件令牌列表。
支持以下构件令牌格式:
<artifactId>:解析为最新稳定版本。<artifactId>:<version>:解析为指定版本。<artifactId>:<channel>:解析为给定频道的最新版本。<artifactId>:<version>/<channel>:解析为给定频道的指定版本。
此命令在 JSON 输出中的结果如下:
生成的 JSON 包含以下字段:
- artifactId
构件标识符。
- version
下载的版本。 如果解析失败,则值为
null。- 状态
结果状态:
"Downloaded"或"Failed"。- error
错误消息。 仅当
状态为"Failed"时显示。
示例
输入 JSON 文件 action_downloadArtifacts_in.json :
{ "actions": [ { "downloadArtifacts": { "artifactTokens": ["com.mysql:8.0.33", "org.postgresql"] } } ] }CLI 命令:
datagrip.exe dataSources manage -p C:\my_projects\cli_for_data_sources\ -i C:\data_source_jsons\action_downloadArtifacts_in.json -o C:\data_source_jsons\action_downloadArtifacts_out.jsondatagrip dataSources manage -p ~/my_projects/cli_for_data_sources/ -i ~/data_source_jsons/action_downloadArtifacts_in.json -o ~/data_source_jsons/action_downloadArtifacts_out.jsondatagrip.sh dataSources manage -p ~/my_projects/cli_for_data_sources/ -i ~/data_source_jsons/action_downloadArtifacts_in.json -o ~/data_source_jsons/action_downloadArtifacts_out.json输出 JSON 文件 action_downloadArtifacts_out.json :
[ { "action": "downloadArtifacts", "result": { "downloadedArtifacts": [ { "artifactId": "com.mysql", "version": "8.0.33", "state": "Downloaded" }, { "artifactId": "org.postgresql", "version": "42.7.1", "state": "Failed", "error": "Connection timeout" } ] } } ]
setUpRecommendedArtifacts
为指定的数据库驱动程序下载并配置推荐的(最新稳定)构件。 适用于驱动首次安装或将驱动升级到推荐版本。
参数
- driverIds
要设置的驱动程序 ID 列表。
此命令在 JSON 输出中的结果如下:
生成的 JSON 包含以下字段:
- id
驱动程序 ID。
- name
驱动程序显示名称。 如果未找到驱动程序,则值为
null。- 状态
结果状态:
"Downloaded":已下载并配置新构件。"UpToDate":该驱动程序已具备推荐的构件。"Failed":操作失败。 例如,驱动程序 ID 未知。
- error
错误消息。 仅当
状态为"Failed"时显示。
示例
输入 JSON 文件 action_setupArtifacts_in.json :
{ "actions": [ { "setUpRecommendedArtifacts": { "driverIds": ["postgresql", "mysql.8"] } } ] }CLI 命令:
datagrip.exe dataSources manage -p C:\my_projects\cli_for_data_sources\ -i C:\data_source_jsons\action_setupArtifacts_in.json -o C:\data_source_jsons\action_setupArtifacts_out.jsondatagrip dataSources manage -p ~/my_projects/cli_for_data_sources/ -i ~/data_source_jsons/action_setupArtifacts_in.json -o ~/data_source_jsons/action_setupArtifacts_out.jsondatagrip.sh dataSources manage -p ~/my_projects/cli_for_data_sources/ -i ~/data_source_jsons/action_setupArtifacts_in.json -o ~/data_source_jsons/action_setupArtifacts_out.json输出 JSON 文件 action_setupArtifacts_out.json :
[ { "action": "setUpRecommendedArtifacts", "result": { "updatedDrivers": [ { "id": "postgresql", "name": "PostgreSQL", "state": "Downloaded" }, { "id": "mysql.8", "name": "MySQL 8", "state": "UpToDate" } ] } } ]