如何从 GoLand 运行 PostgreSQL 查询
开始一个项目
创建 Go 项目
请选择 。
或者,在 欢迎访问GoLand 对话框中,转到 新建 | 项目。
在 新建项目 对话框中,从可用项目类型列表中选择 Go。
在 GOROOT 字段中,指定您的 Go 安装位置。 GoLand 通常会自动检测此位置。
要更改或安装新的 Go SDK 版本,请点击 添加 SDK (
)并选择以下选项之一:
本地 :使用本地系统中现有的 SDK。
下载 :从官方存储库下载 Go SDK 版本。
点击 创建 以创建项目。

创建 Go 文件
要创建一个 Go 文件,请使用以下选项之一:
在 项目 工具窗口中,右键点击项目的父文件夹,然后选择 。
点击项目的父文件夹,按 Alt+Insert ,然后选择 Go 文件。
点击项目的父文件夹,然后转到 。
在 新建Go 文件 对话框中,输入文件名并选择文件类型:
空文件 — 创建一个空的 Go 文件。
简单应用程序 — 创建一个带有预定义
main函数的 Go 文件。

从存储库克隆文件
在此示例中,我们将使用以下两个存储库:Sakila 转储文件(https://github.com/DataGrip/dumps )和一个 Docker Compose 文件(https://github.com/DataGrip/datagrip-documentation)。 Sakila 存储库包含用于创建和填充 Sakila 示例数据库的 SQL 脚本。 Docker 存储库包含定义服务、网络和卷的 YAML 文件。
克隆存储库
选择 或按 Alt+F12。
在终端中运行以下命令:
git clone https://github.com/DataGrip/dumps.gitgit clone https://github.com/DataGrip/datagrip-documentation.git克隆的存储库的两个新文件夹将出现在 项目 工具窗口中。

运行一个 Docker 容器
在本教程中,我们将使用 Docker 基于 datagrip-documentation 存储库运行一个 PostgreSQL 容器。 在存储库的 Docker 目录中,您将找到 .env 和 docker-compose.yml 文件。 .env 文件包含 PostgreSQL 服务的凭据。 docker-compose.yml 文件定义了服务的创建和配置方式。
服务名称出现在服务定义的第一行,在 JDBC URL 之上。 在我们的示例中,服务名称是 postgresql_12 ,JDBC URL 是: jdbc:postgresql://localhost:54333/guest?user=guest&password=guest
要从命令行运行容器,请使用以下命令:
在运行命令之前,请确保导航到包含 docker-compose.yml 文件的目录。
或者,您可以在 GoLand 中启用并使用 Docker 插件。
连接到 Docker 守护进程
按下 Ctrl+Alt+S 以打开设置,然后选择 。
点击
以添加 Docker 配置,并指定如何连接到 Docker 守护进程。
连接设置取决于您的 Docker 版本和操作系统。
连接成功 消息应出现在对话框的底部。

有关在 Windows 或 macOS 上使用 Docker 时将本地路径映射到运行 Docker 守护进程的虚拟机的更多信息,请参阅 Windows 和 macOS 主机的虚拟机路径映射。 您将无法对映射本地路径之外的目录使用卷和绑定挂载。
此表在 Linux 主机上不可用,在该主机上 Docker 本地运行,您可以将任何目录挂载到容器。
打开 服务 工具窗口( 或 Alt+8 ),选择已配置的 Docker 连接节点
并点击
,或从上下文菜单中选择 Connect。

要编辑 Docker 连接设置,请选择 Docker 节点并点击工具栏上的
,或从上下文菜单中选择 Edit Configuration。
您还可以点击
并选择 Docker 连接 ,直接从 服务 工具窗口添加 Docker 连接。 如果您已配置 Docker contexts ,您可以选择 来自 Docker Contexts 的 Docker 连接 以添加相应的连接。
创建 Docker Compose 部署配置
在 项目 工具窗口( )中,找到 docker-compose.yml 文件,来自 克隆的存储库。
点击边距中的 运行 图标。
postgresql_12容器将启动并出现在 服务 工具窗口中。
连接到数据源
根据数据库供应商(MySQL、PostgreSQL、Oracle),您需要创建相应的数据源连接。 在本教程中,我们将创建一个 PostgreSQL 连接。 如果您想连接到其他数据库管理系统(DBMS),请参阅 创建数据源。
通过以下任一方式打开数据源属性:
在 数据库 工具窗口工具栏上,点击
数据源。
请按 Shift+Enter.

在 数据源和驱动程序 对话框中,点击 添加 图标 (
),然后选择 PostgreSQL。
请检查连接设置区域底部是否有一个 下载缺失的驱动文件 链接。 点击此链接下载与数据库交互所需的驱动程序。 有关直接下载链接,请参阅 JetBrains JDBC 驱动程序 页面。

下载的 JDBC 驱动程序的位置是 GoLand 配置目录。
您也可以使用您自己的数据库驱动程序,替代提供的驱动程序。 有关使用驱动程序连接到数据库的更多信息,请参阅 将用户驱动程序添加到现有连接。
如果没有 下载缺失的驱动文件 链接,那么您已经拥有了所需的驱动程序。
在 URL 字段中,粘贴以下 JDBC URL:
jdbc:postgresql://localhost:54333/guest?user=guest&password=guest您可以在 docker-compose.yml 文件中找到其他 DBMS 的 JDBC URL。 在文本编辑器中打开文件以查看可用的连接详细信息。
(可选)在 名称 字段中,为连接输入一个自定义名称(例如,PostgreSQL)。
确保可以使用提供的详细信息建立数据库连接。 为此,请点击连接详细信息部分底部的 测试连接 链接。
如果您遇到任何连接问题,请参考 无法连接到数据库 页面。
(可选)默认情况下,仅检查并提供默认数据库和架构以供使用。 如果您还想使用其他数据库和架构,请在 架构 选项卡中选择它们以进行检查。

点击 确定 创建数据源。

运行转储文件
创建数据库结构
在项目( )工具窗口中,导航到 dump/postgres-sakila-db/postgres-sakila-schema.sql 。
右键点击 postgres-sakila-schema.sql 并选择 运行 postgres-sakila-schema.sql。 或者,打开文件并按 Ctrl+Shift+F10。
在 编辑配置 对话框中,点击 添加 按钮,在 目标数据源/架构 窗格中选择 PostgreSQL。
点击 运行 执行脚本。

将示例数据加载到数据库
在项目( )工具窗口中,导航到 dump/postgres-sakila-db 目录。
展开 postgres-sakila-db 目录。
右键点击 postgres-sakila-insert-data.sql 并选择 运行 postgres-sakila-insert-data.sql。 或者,打开文件并按 Ctrl+Shift+F10。
在 编辑配置 对话框中,点击 添加 按钮并选择 PostgreSQL。
点击 运行 执行脚本。

从 Go 代码获取依赖项
要向 PostgreSQL 发出查询,我们将使用 sqlx 库,该库为 Go 标准 database/sql 包提供了一组扩展。 有关该库的更多信息,请参阅 GitHub 上的 sqlx。
打开创建的 main.go 文件,并将 以下代码 从 GitHub 粘贴到其中。
将光标放在 "github.com/jmoiron/sqlx" 导入语句上,按 Alt+Enter 并选择 修复缺失的依赖项(go mod tidy)。
运行您的代码
要运行配置,请点击靠近
main函数的边距中的 运行 图标(),然后选择 运行 'go build main.go'。
