1
0
mirror of https://github.com/ManyakRus/crud_generator.git synced 2024-12-15 09:44:47 +02:00
Go to file
2024-11-28 17:52:26 +03:00
bin сделал .sh 2024-11-28 15:47:13 +03:00
cmd/crud_generator сделал убрал из constants 2024-09-23 13:33:40 +03:00
docs сделал translit 2024-10-14 16:44:20 +03:00
examples сделал объединил templates_main и templates 2024-02-09 15:17:57 +03:00
internal сделал MassOmit string 2024-11-28 17:52:26 +03:00
pkg сделал CreateFiles_FindModelBy() 2024-10-24 15:45:53 +03:00
scripts сделал CopyAllFiles_Exclude_() 2023-11-15 17:59:21 +03:00
vendor сделал make mod 2024-11-19 13:50:45 +03:00
.gitignore сделал make mod 2024-11-19 15:04:22 +03:00
.golangci.yml сделал AddTextMessageRequestID_Columns() 2024-09-26 14:27:25 +03:00
go.mod сделал nrpc 2024-11-19 13:49:39 +03:00
go.sum сделал make mod 2024-11-19 13:50:45 +03:00
LICENSE Create LICENSE 2024-03-19 15:48:28 +03:00
make_version.sh сделал CreateFiles_FindModelBy() 2024-10-24 15:45:53 +03:00
Makefile сделал nrpc 2024-11-18 15:17:44 +03:00
README.md сделал CreateFiles_FindModelBy() 2024-10-24 15:45:53 +03:00
readme.rus сделал CreateFiles_FindModelBy() 2024-10-24 15:45:53 +03:00

The crud_generator application is designed to automatically generate source code files in golang language to perform CRUD operations. A completely ready-made microservice is created that can be launched immediately.

For each table in the Postgres SQL database, functions will be automatic created to perform crud operations:

  • Create()
  • Read()
  • Update()
  • Delete() (or Delete() + Restore(), if there is an is_deleted field)
  • Save() - creating a new record when ID is empty, or updating a record when ID is not empty
  • ReadFromCache() - reading from cache or database
  • Update_ColumnName() - changing only one column with the name ColumnName, separate function for each column of each table
  • UpdateManyFields() - change several columns listed in an array
  • FindBy_ColumnName() - search for a record by one or more columns (if you fill in the findby_functions.json file)
  • FindMassBy_ColumnName() - search for multiple records by one or more columns (if you fill in the findmassby_functions.json file)
  • ReadAll() - returns all table records, except those marked for deletion is_deleted=true (if you fill in the readall_functions.json file)

files are generated:

  1. table - struct structure with all fields from the database, and gorm + json annotations Tables with fields in the database must be created manually in advance. The code generator will find all the tables and their fields in the database and use them.

  2. entities - struct structure, including table, with crud operations functions

  3. crud - files for performing crud operations, exchange with the database, as well as files with tests

  4. grpc server - files for performing crud operations over the network, using the GRPC protocol, as well as files with tests

  5. grpc client - client files for using GRPC by third-party services, as well as files with tests

  6. nrpc server - files for performing crud operations over the network, using the NRPC protocol (via the NATS message broker), as well as files with tests

  7. nrpc client - client files for use by NRPC third-party services, as well as files with tests

  8. crud_starter - a file with functions for switching to the desired protocol db or grpc or nrpc

  9. main.go and other .go files

  10. Makefile - script launch configuration file

  11. .env - file for filling in the microservice configuration (database connection parameters, etc.)

Code templates are stored in the bin/templates folder. The code template is a .go file copied from the real project - so it’s easy to make a template (change it to your own) - just copy your file. The code generator replaces part of the code in the template with another code:

  • name of the database table
  • model name
  • adding and removing imports

Installation procedure:

  1. Compile this repository

make build

the crud_generator file will appear in the bin folder

  1. Fill in the settings in the file bin/templates/configs_/settings.txt
  • connections to your database
  • the name of your new service
  • URL of your new service
  • and etc.
  1. Tables in the database must be created in advance, manually.

  2. Launch crud_generator A new folder with the name of your service will appear in the bin folder, with subfolders and finished files inside.

  3. Fill in the configuration parameters in the .env file Start microservice:

make run

Features:

  1. Tables with a prefix in the name or comments = "DELETED" or "УДАЛИТЬ" are ignored
  2. Columns with a prefix in the name or comments = "DELETED" or "УДАЛИТЬ" are ignored

P.S. I generated myself 420,000 lines of code, from 70 tables in the database, for my service.

Source code in Golang language. Tested on Linux Ubuntu Readme from 11/14/2023

modules

Made by Alexander Nikitin https://github.com/ManyakRus/crud_generator