Ссылка на 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:
Отношения
Отношения между моделями, включая belongs_to, has_one и has_many, также могут быть объявлены в schema.hcl. Например:
После объявления взаимосвязи вы можете использовать сгенерированный preload метод, чтобы избежать n + 1 запросов. Например:
Если вы знакомы с Rails, вы обнаружите, что Queryx ссылается на многие концепции дизайна из ActiveRecord. Мы надеемся повторить опыт разработки ActiveRecord. Для получения дополнительной информации об использовании queryx, пожалуйста, обратитесь к документации README и не стесняйтесь обсуждать ее в выпуске, обсуждении и ответе. Queryx в настоящее время находится в стадии бета-тестирования (v0), и многие функции все еще находятся в стадии разработки, такие как поддержка MySQL. Мы надеемся продолжать улучшать процесс разработки в будущих версиях.