Home >Backend Development >Golang >GO - Gin/Gorm/Postgresql - Create foreign key with 'has a' association
php Xiaobian Strawberry introduces to you the method of using Gin, Gorm and PostgreSQL to create a foreign key with a "have" association in the GO language. During the development process, we often encounter situations where we need to establish relationships between tables. Sometimes, we need to establish a "one" association between a table and another table, that is, a record in one table corresponds to a record in another table. This association relationship can be realized through foreign keys. In the GO language, we can use the Gin framework for routing processing. Gorm is an ORM tool to interact with the database, and PostgreSQL is a powerful relational database. Below you will learn more about how to use these tools to create a foreign key with a "has a" association.
I have read the documentation (https://gorm.io/docs/has_one.html) and tested as suggested, but cannot create the association. My table looks like this (name is in Italian)
models/tables.go type teatroy struct { gorm.model nome string posti int } type spettacoloxy struct { gorm.model nome string teatro teatroy `gorm:"foreignkey:id"` }
I mainly use classic automatic migration
initializers.db.automigrate(&models.teatroy{}, &models.spettacoloxy{})
The error I get is as follows
"2023/04/02 16:12:24 E:/Work/Mota/cdbp4/server.go:13 ERROR: relation "spettacolo_xies" does not exist (SQLSTATE 42P01) [33.459ms] [rows:0] ALTER TABLE "teatro_ies" ADD CONSTRAINT "fk_spettacolo_xies_teatro" FOREIGN KEY ("id") REFERENCES "spettacolo_xies"("id")"
After creating "teatroy", when I create "spettacoloxy", the "teatro" field must be associated with one and only one "teatroy"
Thank you in advance for your help
Change the model migration code to:
initializers.DB.AutoMigrate(&models.SpettacoloXY{}, &models.TeatroY{})
will eliminate the error and create two tables in the database.
The above is the detailed content of GO - Gin/Gorm/Postgresql - Create foreign key with 'has a' association. For more information, please follow other related articles on the PHP Chinese website!