Такие читатели, как вы, помогают поддерживать MUO. Когда вы совершаете покупку по ссылкам на нашем сайте, мы можем получать партнерскую комиссию. Читать далее.

Postgres — одна из популярных баз данных SQL благодаря множеству функций и простоте использования. Postgres совместим с ACID благодаря таким функциям, как управление параллелизмом нескольких версий, асинхронная репликация, вложенные транзакции и ведение журнала с упреждающей записью. Наряду со многими другими, эти функции делают Postgres идеальной системой управления базами данных SQL.

Экосистема Go содержит множество пакетов для взаимодействия с различными СУБД, включая Postgres. Go предоставляет встроенный база данных/sql пакет для работы с базами данных SQL с использованием драйверов баз данных. Используя структуры данных Go, вы можете интегрировать популярные сторонние ORM, такие как GORM, для удобного взаимодействия с вашей базой данных.

Начало работы с GORM и Postgres

Пакет ГОРМ — одна из самых популярных ORM в экосистеме Go, потому что она удобна для разработчиков, многофункциональна и основана на

instagram viewer
в база данных/sql упаковка.

GORM предоставляет функциональные возможности для автоматической миграции, ведения журналов, подготовленных операторов, транзакций и сегментирования. Пакет использует подход «сначала код» с использованием структур и других встроенных типов данных.

Запустите эту команду терминала в своем рабочем каталоге, чтобы добавить пакет GORM в зависимости вашего проекта:

идти получить gorm.io/gorm\n

Вам понадобится драйвер базы данных для работы с пакетом GORM. GORM предоставляет драйверы баз данных для популярных СУБД. Запустите эту команду в своем рабочем каталоге, чтобы установить GORM. Постгрес Водитель:

идти получить gorm.io/driver/postgres\n

Подключение Postgres к Go с помощью GORM

Импортируйте эти пакеты в свой файл Go, чтобы работать с ORM и драйвером базы данных. Вы будете использовать бревно пакет для регистрации ошибок на вашей консоли и ФМТ пакет для вывода на печать.

Импортировать (\n "ФМТ"\n "gorm.io/драйвер/постгрес"\n "горм.ио/горм"\n "бревно"\n)\n

Вам потребуется строка подключения для подключения к База данных Postgres в беговой среде. Вы можете использовать структуру в качестве модели для полей, составляющих строку подключения. Использование структуры упрощает изменение и тестирование различных значений, особенно в случаях внедрения зависимостей.

Вот пример структурной модели для полей, составляющих строку подключения:

тип Конфигурация структура {\ п Хост нить\n Порт нить\n Пароль нить\n Пользователь нить\n Имя БД нить\n SSL-режим нить\n}\n

Ниже приведена типичная функция для вашего подключения к базе данных. Он возвращает экземпляр соединения и ошибку в зависимости от состояния соединения.

функцияНовоеПодключение()(*горм. БД, ошибка) {\ п возвращаться дБ, ноль\n}\n

Вы можете создать экземпляр модели структуры соединения и заполнить поля значениями в базе данных Postgres.

 конфигурации := Config{\n Хост: "база_хост",\n Порт: "база_порт_базы",\n Пароль: "база данных_пароль",\n Пользователь: "пользователь_базы_данных",\n Имя БД: "имя_базы_данных",\nРежим SSL: "ЛОЖЬ",\n }\n dsn := fmt. Спринтф("host=%s port=%s user=%s password=%s dbname=%s sslmode=%s", конфигурации. Хост, конфигурации. Порт, конфигурации. Пользователь, конфигурации. Пароль, конфигурации. Имя БД, конфигурации. SSLMode)\n

дсн переменная использует Спринтф метод форматирования и Глаголы форматирования строки Go чтобы объединить поля Конфигурация struct и настройте строку подключения Postgres.

Вы можете открыть соединение с базой данных с GORM, используя команду Открыть метод. Открыть Метод принимает открытое соединение от драйвера базы данных и список дополнительных конфигураций из Конфигурация тип пакета GORM. Он возвращает экземпляр соединения и необязательную ошибку.

 db, err := горм. Открыть (постгрес. Открыть (dsn), &горм. Конфигурация{})\n если ошибся != ноль {\ п возвращаться дб, ошибка\n }\n

Проверка связи с базой данных для проверки состояния подключения

Вы можете пропинговать свою базу данных, чтобы проверить состояние работоспособности / онлайн-статуса с помощью функции, которая возвращает логический результат или ошибку, если соединение с базой данных недействительно.

функцияПингДб()(логический, ошибка) {\ п \ п возвращатьсяистинный, ноль\n}\n

Вам нужно будет создать новый экземпляр подключения для проверки связи с базой данных. Вот пример с использованием НовоеПодключение функция для создания экземпляра соединения:

 экземпляр соединения, ошибка := NewConnection()\n если ошибся != ноль {\n лог. Фатальф("Сбой подключения к базе данных %v", ошибся. Ошибка())\n }\n

Получив экземпляр соединения, создайте экземпляр базы данных с БД способ подключения.

 dbConnection, ошибка: = экземпляр соединения. БД()\n если ошибся != ноль {\ п возвращатьсяЛОЖЬ, ошибка\n } \n

Вы можете пропинговать базу данных с помощью пинг метод экземпляра базы данных. пинг метод возвращает любые ошибки или ноль если подключение прошло успешно.

\n ошибка = соединение с базой данных. Пинг()\n если ошибся != ноль {\ п возвращатьсяЛОЖЬ, ошибка\n } еще {\ п \ п фмт. Распечатать("Соединение прошло успешно")\n }\n

Успешный запуск должен привести к выводу, подобному этому:

Вы можете использовать пакет database/sql для работы с базой данных SQL в Go

база данных/sql пакет является расширяемым, и поскольку большинство пакетов и драйверов баз данных Go расширяют пакет, вы можете использовать пакет в своих проектах вместо выбора ORM.

GORM также предоставляет построитель SQL для создания необработанного SQL, что полезно для неподдерживаемых операций.