Conventions pour nouvelles colonnes

Directives pour ajouter de nouvelles colonnes de base de données avec tags de structure, types de champs et conventions de nommage en Go.

Spar Skills Guide Bot
DeveloppementDébutant
0004/08/2026
Claude CodeCursorWindsurfCopilotCodex
#database#conventions#go#struct-tags#snake-case

Recommandé pour


name: new-column description: conventions for new columns

Be sure all database fields are snake_case Be sure all sub structs that are in jsonb collumns are also snake_case Be sure to not use booleans for fields, use smallint 0/1

Struct Tag Annotations

Critical: Struct tags control database migrations and constraints. Include all relevant tags:

Name     *fields.StringField `column:"name" type:"text" default:"":"false"`
Email    *fields.StringField `column:"email" type:"text" default:"" unique:"true"`
Age      *fields.IntField    `column:"age" type:"integer" default:"0" null:"true"`
Status   *fields.IntConstantField[Status] `column:"status" type:"smallint" default:"1"`
Settings *fields.StructField[*Settings] `column:"settings" type:"jsonb" default:"{}"`

Available Tags:

  • column:"name" – Database column name (required)
  • type:"text|jsonb|smallint|integer|uuid|date|datetime|bigint" – Database column type (required) note that all 'boolean' type things should be a smallint 0/1
  • default:"value/null" – Default value for column
  • null:"true" – Whether column allows NULL, dont add if not nullable
  • unique:"true" – Whether column has unique constraint, dont add if not unique
  • index:"true" – Whether to create index on column, dont add if not indexed
  • public:"view|edit" - For public endpoints, determines whether or not the field is returned (view or edit) or on updates if its editable by the user (edit), dont add if not public facing
  • IMPORTANT - for all UUID fields, they must have default:"null" null:"true"

Field Types

  • StringField – Text/string columns
  • UUIDField – UUID columns
  • IntField – Integer columns / Bool fields with smallint 0/1 values
  • DecimalField – Decimal/numeric columns
  • IntConstantField[T] – Enum/constant fields
  • StructField[T] – JSONB/struct columns

All fields provide .Set(val) and .Get() methods. Struct fields have a .GetI() for when errors do not need to be checked

Skills similaires