Meta stores meta information for any object to a database table.
Store to database additional information to anything using metas (key - value) pairs
go get -u github.com/gouniverse/metastore
The following schema is used for the database.
meta | |
---|---|
id | String, UniqueId |
object_type | String (100) |
object_id | String (40) |
meta_key | String (255) |
meta_value | Long Text |
created_at | DateTime |
updated_at | DateTime |
deleted_at | DateTime |
metaStore, err := metastore.NewStore(metastore.NewStoreOptions{
DB: databaseInstance,
MetaTableName: "my_meta",
AutomigrateEnabled: true,
DebugEnabled: false,
})
if err != nil {
t.Fatal("Error at AutoMigrate", err.Error())
}
- Set a meta values (for user with ID 1)
metaStore.Set("user", "1", "verified", "yes")
metaStore.Set("user", "1", "verified_at", "2021-03-12")
- Get meta values (for user with ID 1), if not found a default value is returned
log.Println(metaStore.Get("user", "1", "verified", ""))
log.Println(metaStore.Get("user", "1", "verified_at", ""))
2022.12.07 - Changed setup to use struct
2022.12.07 - Updated dependencies, fixed package name
2022.01.02 - Removed GORM dependency
2021.12.29 - Added tests badge
2021.12.29 - Added tests