如何从 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 运行一个 PostgreSQL 容器,基于 datagrip-documentation 代码库。 在代码库的 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 上下文的 Docker 连接 以添加相应的连接。
创建 Docker Compose 部署配置
在 项目 工具窗口( )中,从 克隆的仓库中找到 docker-compose.yml 文件。
点击边距中的 运行 图标。
postgresql_12容器将启动并显示在 服务 工具窗口中。
连接到数据源
根据数据库供应商(MySQL、PostgreSQL、Oracle),您需要创建相应的数据源连接。 在本教程中,我们将创建一个 PostgreSQL 连接。 如果您希望连接其他数据库管理系统(DBMS),请参见 创建数据源。
通过以下任一方式打开数据源属性:
在 数据库 工具窗口的工具栏上,点击
数据源。
按 Shift+Enter。

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

已下载的 JDBC 驱动程序将保存至 GoLand 配置目录。
您也可以使用自己的数据库驱动程序来替代默认提供的驱动程序。 有关使用自定义驱动程序连接数据库的更多信息,请参见 Add a user driver to an existing connection。
如果未显示 下载缺失的驱动程序文件 链接,说明所需驱动程序已存在。
在 URL 字段中粘贴以下 JDBC URL:
jdbc:postgresql://localhost:54333/guest?user=guest&password=guest您可以在 docker-compose.yml 文件中找到其他 DBMS 的 JDBC URL。 在文本编辑器中打开该文件以查看可用的连接详情。
(可选)在 名称 字段中输入连接的自定义名称,例如 PostgreSQL。
确保可以使用提供的信息建立数据库连接。 为此,请点击连接详情区域底部的 测试连接 链接。
如果遇到任何连接问题,请参见 无法连接到数据库 页面。
(可选)默认情况下,仅对默认数据库和架构进行内省,并可供使用。 如果您还想使用其他数据库和架构,请在 架构 选项卡中选择它们以进行内省。

点击 确定 创建数据源。

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

将示例数据加载到数据库中
在 Project( )工具窗口中,导航到 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" import 语句上,按 Alt+Enter ,然后选择 修复缺失的依赖项(go mod tidy)。
运行代码
要运行该配置,请单击靠近
main函数的边距中的 运行 图标(),然后选择 运行 'go build main.go'。
