Grom Model 生成 SQL

date
Aug 3, 2023
slug
gorm-model-to-sql-example
status
Published
tags
Go
MySQL
summary
代码生成 SQL
type
Post
Created Time
Oct 28, 2023 01:45 PM
Updated Time
Oct 28, 2023 01:45 PM
AI summary
在业务开发中,使用代码生成 SQL 可以灵活、可读性好、可维护性好、可扩展性好。在 MySQL 中,可以直接通过在 Model 上进行备注,直接进行数据表的创建和备注的生成。
Status
业务开发中,经常需要使用数据库进行数据存储,如果在版本发布时,数据库不存在,或者数据库创建错了,则会引发许多问题,一种行之有效的方式是在代码里自动创建数据库表,这样就不用在部署的时候单独维护 SQL 表了。
假设我们的业务中需要使用 Users 表,Users 表的建表语句如下:
转换为 Gorm Model 就是这样:
最后,有两种方法进行数据库创建,第一种是在项目启动时,在 Init 函数中批量创建,第二种,则是在业务中,根据业务需要,创建单个或多个表,两者各有利弊,根据实际的业务需要,灵活使用即可。
总体来看,使用代码生成 SQL 有如下优点:
  1. 灵活性高:可以根据具体的需求生成不同的 SQL 语句,满足不同的查询和操作需求。
  1. 可读性好:可以根据具体的需求生成可读性较好的 SQL 语句,方便理解和调试。
  1. 可维护性好:可以通过修改生成代码的方式来修改 SQL 语句,便于维护。
  1. 可扩展性好:可以通过添加新的代码生成逻辑来扩展支持的 SQL 语句类型。

注意

最后,在我的使用中,我发现,如果是 PostgreSQL,可以用上面的方式进行数据表的创建和备注的生成,Init 初始化的方式如下:
但在 MySQL 中,初始化则可以直接通过再 Model 上进行备注,直接通过进行数据表的创建和备注的生成。Model 的修改如下:

© 孙东辉 2022 - 2024