修改包依赖名称
This commit is contained in:
@@ -4,8 +4,8 @@ import (
|
||||
"fmt"
|
||||
"log"
|
||||
|
||||
"github.com/go-common/config"
|
||||
"github.com/go-common/middleware"
|
||||
"git.toowon.com/jimmy/go-commom/config"
|
||||
"git.toowon.com/jimmy/go-commom/middleware"
|
||||
// "gorm.io/driver/mysql"
|
||||
// "gorm.io/gorm"
|
||||
)
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"log"
|
||||
"time"
|
||||
|
||||
"github.com/go-common/datetime"
|
||||
"git.toowon.com/jimmy/go-commom/datetime"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"log"
|
||||
"time"
|
||||
|
||||
"github.com/go-common/datetime"
|
||||
"git.toowon.com/jimmy/go-commom/datetime"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
@@ -4,8 +4,8 @@ import (
|
||||
"fmt"
|
||||
"log"
|
||||
|
||||
"github.com/go-common/config"
|
||||
"github.com/go-common/email"
|
||||
"git.toowon.com/jimmy/go-commom/config"
|
||||
"git.toowon.com/jimmy/go-commom/email"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
"github.com/go-common/http"
|
||||
"git.toowon.com/jimmy/go-commom/http"
|
||||
)
|
||||
|
||||
// 用户结构
|
||||
|
||||
@@ -4,9 +4,9 @@ import (
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
"github.com/go-common/datetime"
|
||||
"github.com/go-common/http"
|
||||
"github.com/go-common/middleware"
|
||||
"git.toowon.com/jimmy/go-commom/datetime"
|
||||
"git.toowon.com/jimmy/go-commom/http"
|
||||
"git.toowon.com/jimmy/go-commom/middleware"
|
||||
)
|
||||
|
||||
// 示例:使用CORS和时区中间件
|
||||
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
|
||||
"gorm.io/driver/mysql"
|
||||
"gorm.io/gorm"
|
||||
"github.com/go-common/migration"
|
||||
"git.toowon.com/jimmy/go-commom/migration"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
105
examples/migration_reset_example.go
Normal file
105
examples/migration_reset_example.go
Normal file
@@ -0,0 +1,105 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
|
||||
"git.toowon.com/jimmy/go-commom/migration"
|
||||
"gorm.io/driver/sqlite"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// 初始化数据库连接(使用SQLite作为示例)
|
||||
db, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{})
|
||||
if err != nil {
|
||||
log.Fatal("Failed to connect to database:", err)
|
||||
}
|
||||
|
||||
// 创建迁移器
|
||||
migrator := migration.NewMigrator(db)
|
||||
|
||||
// 添加一些迁移
|
||||
migrator.AddMigrations(
|
||||
migration.Migration{
|
||||
Version: "20240101000001",
|
||||
Description: "create_users_table",
|
||||
Up: func(db *gorm.DB) error {
|
||||
return db.Exec(`
|
||||
CREATE TABLE users (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
email VARCHAR(255) UNIQUE NOT NULL
|
||||
)
|
||||
`).Error
|
||||
},
|
||||
Down: func(db *gorm.DB) error {
|
||||
return db.Exec("DROP TABLE IF EXISTS users").Error
|
||||
},
|
||||
},
|
||||
migration.Migration{
|
||||
Version: "20240101000002",
|
||||
Description: "add_created_at_to_users",
|
||||
Up: func(db *gorm.DB) error {
|
||||
return db.Exec("ALTER TABLE users ADD COLUMN created_at DATETIME").Error
|
||||
},
|
||||
Down: func(db *gorm.DB) error {
|
||||
return db.Exec("ALTER TABLE users DROP COLUMN created_at").Error
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
// 执行迁移
|
||||
fmt.Println("=== Executing migrations ===")
|
||||
err = migrator.Up()
|
||||
if err != nil {
|
||||
log.Fatal("Failed to run migrations:", err)
|
||||
}
|
||||
|
||||
// 查看状态
|
||||
fmt.Println("\n=== Migration status ===")
|
||||
status, err := migrator.Status()
|
||||
if err != nil {
|
||||
log.Fatal("Failed to get status:", err)
|
||||
}
|
||||
for _, s := range status {
|
||||
fmt.Printf("Version: %s, Description: %s, Applied: %v\n",
|
||||
s.Version, s.Description, s.Applied)
|
||||
}
|
||||
|
||||
// 示例1:仅清空迁移记录(不回滚数据库变更)
|
||||
fmt.Println("\n=== Example 1: Reset migration records only ===")
|
||||
fmt.Println("Note: This only clears records, not database changes")
|
||||
// 直接调用(需要确认标志)
|
||||
// err = migrator.Reset(true)
|
||||
// if err != nil {
|
||||
// log.Fatal("Failed to reset:", err)
|
||||
// }
|
||||
|
||||
// 交互式确认(推荐)
|
||||
// 取消注释下面的代码来测试交互式重置
|
||||
// err = migrator.ResetWithConfirm()
|
||||
// if err != nil {
|
||||
// log.Fatal("Failed to reset with confirm:", err)
|
||||
// }
|
||||
|
||||
// 示例2:回滚所有迁移并清空记录
|
||||
fmt.Println("\n=== Example 2: Reset all migrations (rollback + clear records) ===")
|
||||
fmt.Println("Note: This will rollback all migrations and clear records")
|
||||
// 直接调用(需要确认标志)
|
||||
// err = migrator.ResetAll(true)
|
||||
// if err != nil {
|
||||
// log.Fatal("Failed to reset all:", err)
|
||||
// }
|
||||
|
||||
// 交互式确认(推荐)
|
||||
// 取消注释下面的代码来测试交互式重置
|
||||
// err = migrator.ResetAllWithConfirm()
|
||||
// if err != nil {
|
||||
// log.Fatal("Failed to reset all with confirm:", err)
|
||||
// }
|
||||
|
||||
fmt.Println("\nNote: Reset functions are commented out for safety.")
|
||||
fmt.Println("Uncomment the code above to test reset functionality.")
|
||||
}
|
||||
|
||||
@@ -4,8 +4,8 @@ import (
|
||||
"fmt"
|
||||
"log"
|
||||
|
||||
"github.com/go-common/config"
|
||||
"github.com/go-common/sms"
|
||||
"git.toowon.com/jimmy/go-commom/config"
|
||||
"git.toowon.com/jimmy/go-commom/sms"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
@@ -4,9 +4,9 @@ import (
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
"github.com/go-common/config"
|
||||
"github.com/go-common/middleware"
|
||||
"github.com/go-common/storage"
|
||||
"git.toowon.com/jimmy/go-commom/config"
|
||||
"git.toowon.com/jimmy/go-commom/middleware"
|
||||
"git.toowon.com/jimmy/go-commom/storage"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
Reference in New Issue
Block a user