```go
package main
type IDer interface{ GetID() int64 }
// ID will add some method to implement some interface eg: GetID
type ID int64
func (z ID) GetID() int64 { return int64(z) }
type Test struct {
	ID
	Code string `gorm:"size:50"`
	Name string `gorm:"size:50"`
}
func main() {
	db, err := gorm.Open(postgres.New(postgres.Config{
		DSN: `dsn`,
		PreferSimpleProtocol: false,
	}), &gorm.Config{
		Logger:                 logger.Default.LogMode(logger.Info),
		SkipDefaultTransaction: true,
	})
	if err != nil {
		log.Fatal(err)
	}
	if err = db.AutoMigrate(&Test{}); err != nil {
		// invalid embedded struct for Test's field ID, should be struct, but got main.ID
		log.Fatal(err)
	}
}
```
		
	
				
					
					feat(migrator,migrator/migrator.go,tests/migrate_test.go) : Get multiple data tables for migrator. (#4841)
				
			
			GORM
The fantastic ORM library for Golang, aims to be developer friendly.
Overview
- Full-Featured ORM
 - Associations (Has One, Has Many, Belongs To, Many To Many, Polymorphism, Single-table inheritance)
 - Hooks (Before/After Create/Save/Update/Delete/Find)
 - Eager loading with 
Preload,Joins - Transactions, Nested Transactions, Save Point, RollbackTo to Saved Point
 - Context, Prepared Statement Mode, DryRun Mode
 - Batch Insert, FindInBatches, Find To Map
 - SQL Builder, Upsert, Locking, Optimizer/Index/Comment Hints, NamedArg, Search/Update/Create with SQL Expr
 - Composite Primary Key
 - Auto Migrations
 - Logger
 - Extendable, flexible plugin API: Database Resolver (Multiple Databases, Read/Write Splitting) / Prometheus…
 - Every feature comes with tests
 - Developer Friendly
 
Getting Started
- GORM Guides https://gorm.io
 
Contributing
You can help to deliver a better GORM, check out things you can do
License
© Jinzhu, 2013~time.Now
Released under the MIT License
					Languages
				
				
								
								
									Go
								
								99.9%
							
						
							
								
								
									Shell
								
								0.1%