Приложение crud_generator предназначено для автоматической генерации файлов исходного кода на языке golang для выполнения операций CRUD. Создаётся полностью готовый микросервис, который можно сразу запустить. Для каждой таблицы в базе данных Postgres SQL автоматически будут сделаны функции для выполнения crud операций: - Create() - Read() - Update() - Delete() (или Delete() + Restore() если есть поле is_deleted) - Save() - создание новой записи при пустом ID, или обновление записи при не пустом ID - ReadFromCache() - чтение из кэша или базы данных - Update_ColumnName() - изменение только одной колонки с именем ColumnName, отдельная функция для каждой колонки каждой таблицы. - UpdateManyFields() - изменение нескольких колонок, перечисленных в массиве - FindBy_ColumnName() - поиск записи по одной или нескольким колонкам (если заполнить файл findby_functions.json) - FindMassBy_ColumnName() - поиск несколько записей по одной или нескольким колонкам (если заполнить файл findmassby_functions.json) генерируются файлы: 1. tables - структура struct со всеми полями из БД, и аннотациями gorm + json Таблицы с полями в базе данных должны быть созданы заранее вручную. Кодогенератор найдёт в базе все таблицы и их поля, и использует их. 2. entities - структура struct, включающая table, с функциями crud операций 3. crud - файлы выполнения crud операций, обмен с базой данных, а также файлы с тестами 4. grpc server - файлы для выполнения crud операций по сети, по протоколу GRPC, а также файлы с тестами 5. grpc client - файлы клиенты для использования GRPC сторонними сервисами, а также файлы с тестами 6. nrpc server - файлы для выполнения crud операций по сети, по протоколу NRPC (через брокер сообщений NATS), а также файлы с тестами 7. nrpc client - файлы клиенты для использования NRPC сторонними сервисами, а также файлы с тестами 8. crud_starter - файл с функциями переключения на нужный протокол db или grpc или nrpc 9. main.go и другие .go файлы 10. Makefile - файл настройки запуска скриптов 11. .env - файл для заполнения конфигурации микросервиса (параметры подключения к БД и др.) Шаблоны кода хранятся в папке bin/templates. Шаблон кода - это файл .go скопированный из реального проекта - поэтому шаблон сделать (поменять на свой) легко - просто скопировать свой файл. Кодогенератор выполняет замену части кода в шаблоне на другой код: - название таблицы БД - название модели - добавление и убирание импортов Порядок установки: 1. Скомпилировать этот репозиторий >make build в папке bin появится файл crud_generator 2. Заполнить найстройки в файле bin/templates/configs_/settings.txt (или .env) - подключения к вашей базе данных - имя вашего нового сервиса - URL вашего нового сервиса - и др. 3. Таблицы в базе данных должны быть сделаны заранее, вручную. 4. Запустить crud_generator В папке bin появится новая папка с именем вашего сервиса, с подпапками и готовыми файлами внутри. 5. Заполнить параметры конфигурации в файле .env Запустить микросервис: >make run P.S. Я сгенерировал себе 420000 строк кода, из 70 таблиц в базе данных, для своего сервиса. Исходный код на языке Golang. Тестировал на Linux Ubuntu Реадми от 14.11.2023 Сделал Александр Никитин https://github.com/ManyakRus/crud_generator