config

package
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 15, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package config загружает настройки CLI gomigr из YAML и переменных окружения.

Используется только бинарём cmd/gomigr. Библиотечный фасад (корневой пакет gomigr) принимает Options напрямую и не зависит от этого пакета.

Index

Constants

View Source
const DefaultConfigPath = "./configs/config.yaml"

DefaultConfigPath — путь к YAML-конфигу, используемый CLI по умолчанию.

Variables

This section is empty.

Functions

func LoadMigrationsDir

func LoadMigrationsDir(configPath, flagOverride string) (string, error)

LoadMigrationsDir разрешает путь к директории миграций по тем же приоритетам, что и Load (defaults → YAML → ENV → CLI override), но без требования DSN. Используется командой `create`, которой БД не нужна.

Types

type Config

type Config struct {
	// DSN — строка подключения к PostgreSQL, обязательна.
	DSN string `yaml:"dsn"`
	// MigrationsDir — путь к директории с *.sql, по умолчанию ./migrations.
	MigrationsDir string `yaml:"migrations_dir"`
}

Config — итоговый набор параметров, полученный после применения всех источников.

func Load

func Load(configPath string, overrides Overrides) (Config, error)

Load собирает конфиг по правилам приоритета:

  1. defaults: MigrationsDir="./migrations", DSN — пустой.
  2. YAML по configPath. Если configPath пустой, используется DefaultConfigPath. Если файла нет — шаг пропускается без ошибки.
  3. Переменные окружения: GOMIGR_DSN, GOMIGR_MIGRATIONS_DIR.
  4. Overrides (CLI-флаги) — перекрывают всё остальное.

После сборки проверяется обязательность DSN. Если он пуст — возвращается ошибка.

type Overrides

type Overrides struct {
	DSN           string
	MigrationsDir string
}

Overrides — значения, перекрывающие YAML и ENV. Используется для CLI-флагов. Пустая строка означает «флаг не задан, не перекрывать».

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL