diff --git a/dao/purchase.go b/dao/purchase.go index 2a2bb5c..01e1b1a 100644 --- a/dao/purchase.go +++ b/dao/purchase.go @@ -51,7 +51,7 @@ func (dao *dbPurchaseDao) Update(context context.Context, purchase *database.Pur func (dao *dbPurchaseDao) Get(context context.Context, id int64) (database.Purchase, error) { var purchase = database.Purchase{} - if err := dao.db.Preload("Item").Where("id = ?", id).Take(&purchase).Error; err != nil { + if err := dao.db.Preload("Item").Preload("Item.Stats").Where("id = ?", id).Take(&purchase).Error; err != nil { return purchase, err } return purchase, nil diff --git a/database/category.go b/database/category.go index c6b31f6..e516466 100644 --- a/database/category.go +++ b/database/category.go @@ -4,5 +4,5 @@ type Category struct { Id int64 `json:"id" gorm:"primaryKey;not null;autoIncrement:false"` Name string `json:"name" gorm:"not null;size:32"` - Items []*Item `json:"items" gorm:"foreignKey:CategoryId"` + //Items []*Item `json:"items" gorm:"foreignKey:CategoryId"` } diff --git a/database/connection.go b/database/connection.go index 036ca55..2d16a33 100644 --- a/database/connection.go +++ b/database/connection.go @@ -17,11 +17,15 @@ func Connect() (*gorm.DB, error) { func ConnectDBWithConfig(config *util.DBConfig) (*gorm.DB, error) { if config.DBDialect == "sqlite3" { - db, err := gorm.Open(sqlite.Open(config.DBPath), &gorm.Config{}) + db, err := gorm.Open(sqlite.Open(config.DBPath), &gorm.Config{ + DisableForeignKeyConstraintWhenMigrating: true, + }) return db.Debug(), err } else if config.DBDialect == "mysql" { dbPath := fmt.Sprintf("%s:%s@%s", config.Username, config.Password, config.DBPath) - db, err := gorm.Open(mysql.Open(dbPath), &gorm.Config{}) + db, err := gorm.Open(mysql.Open(dbPath), &gorm.Config{ + DisableForeignKeyConstraintWhenMigrating: true, + }) if err != nil { panic(err) } diff --git a/database/data.sql b/database/data.sql index 675b124..ac8acf3 100644 --- a/database/data.sql +++ b/database/data.sql @@ -1,3 +1,5 @@ +CREATE SCHEMA IF NOT EXISTS `data-marketplace` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; + insert into categories(id, name) values (100, 'Uncategorized'); insert into categories(id, name) values (1, 'AI Model'); insert into categories(id, name) values (2, 'Code Resource'); diff --git a/database/item.go b/database/item.go index 8125f87..5c2b149 100644 --- a/database/item.go +++ b/database/item.go @@ -42,7 +42,7 @@ type Item struct { UpdatedGnfdHeight int64 `json:"updated_gnfd_height"` UpdatedBscHeight int64 `json:"updated_bsc_height"` - Stats *ItemStats `json:"stats" gorm:"foreignKey:ItemId"` + Stats *ItemStats `json:"stats"` } type ItemStats struct {