Найти в Дзене
Golang-news

Queryx: программа Golang ORM с открытым исходным кодом и автоматическим управлением схемами

Оглавление

Ссылка на Github: https://github.com/swiftcarrot/queryx

Установка:

curl -sf https://raw.githubusercontent.com/swiftcarrot/queryx/main/install.sh | sh

schema.hcl

Queryx использует schema.hcl для описания базы данных. В следующем примере определяются среды и модели базы данных:

Запустите queryx db:create команду для создания базы данных PostgreSQL, а затем запустите queryx db:migrate для автоматического создания файлов переноса базы данных и структуры базы данных. Управление схемой базы данных Queryx основано на Atlas.

CRUD

Запуск queryx g генерирует соответствующий код ORM в db каталоге. Сгенерированный код генерирует типы Go на основе схемы базы данных и не имеет других сторонних зависимостей, за исключением lib/pq драйвера. Мы надеемся, что автоматически сгенерированный код будет кратким и читабельным.

Ниже приведены некоторые примеры кода для операций CRUD:

-2

Отношения

Отношения между моделями, включая belongs_to, has_one и has_many, также могут быть объявлены в schema.hcl. Например:

-3

После объявления взаимосвязи вы можете использовать сгенерированный preload метод, чтобы избежать n + 1 запросов. Например:

-4

Если вы знакомы с Rails, вы обнаружите, что Queryx ссылается на многие концепции дизайна из ActiveRecord. Мы надеемся повторить опыт разработки ActiveRecord. Для получения дополнительной информации об использовании queryx, пожалуйста, обратитесь к документации README и не стесняйтесь обсуждать ее в выпуске, обсуждении и ответе. Queryx в настоящее время находится в стадии бета-тестирования (v0), и многие функции все еще находятся в стадии разработки, такие как поддержка MySQL. Мы надеемся продолжать улучшать процесс разработки в будущих версиях.