mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-07-15 20:27:20 +08:00
Go: add migrate database flag (#16719)
### Summary --migrate will trigger database migration ``` ./ragflow_main --api --migrate ``` Signed-off-by: Jin Hai <haijin.chn@gmail.com>
This commit is contained in:
@@ -62,6 +62,7 @@ type serverArgs struct {
|
||||
helpFlag bool
|
||||
versionFlag bool
|
||||
debugLog bool
|
||||
migrateDB bool
|
||||
configPath *string // Used by admin, api; user defined config path
|
||||
initSuperUser bool // Used by admin;
|
||||
port *int // Used by admin, api
|
||||
@@ -81,6 +82,8 @@ func parseArgs() (*serverArgs, error) {
|
||||
case "--admin":
|
||||
serverMode = "admin"
|
||||
args.mode = &serverMode
|
||||
case "--migrate":
|
||||
args.migrateDB = true
|
||||
case "--ingestor":
|
||||
serverMode = "ingestor"
|
||||
args.mode = &serverMode
|
||||
@@ -335,7 +338,7 @@ func main() {
|
||||
server.PrintAll()
|
||||
|
||||
// Initialize database
|
||||
if err = dao.InitDB(); err != nil {
|
||||
if err = dao.InitDB(arguments.migrateDB); err != nil {
|
||||
common.Fatal("Failed to initialize database", zap.Error(err))
|
||||
}
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ type LLMFactoriesFile struct {
|
||||
}
|
||||
|
||||
// InitDB initialize database connection
|
||||
func InitDB() error {
|
||||
func InitDB(migrateDB bool) error {
|
||||
cfg := server.GetConfig()
|
||||
dbCfg := cfg.Database
|
||||
|
||||
@@ -160,17 +160,20 @@ func InitDB() error {
|
||||
&entity.FileCommitItem{},
|
||||
}
|
||||
|
||||
for _, m := range dataModels {
|
||||
if err = autoMigrateSafely(DB, m); err != nil {
|
||||
return fmt.Errorf("failed to migrate model %T: %w", m, err)
|
||||
if migrateDB {
|
||||
common.Info("Migrating database schema...")
|
||||
for _, m := range dataModels {
|
||||
if err = autoMigrateSafely(DB, m); err != nil {
|
||||
return fmt.Errorf("failed to migrate model %T: %w", m, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Run manual migrations for complex schema changes
|
||||
if err = RunMigrations(DB); err != nil {
|
||||
return fmt.Errorf("failed to run manual migrations: %w", err)
|
||||
// Run manual migrations for complex schema changes
|
||||
if err = RunMigrations(DB); err != nil {
|
||||
return fmt.Errorf("failed to run manual migrations: %w", err)
|
||||
}
|
||||
common.Info("Database schema migrated successfully")
|
||||
}
|
||||
|
||||
// Seed built-in agent templates so the Go backend can serve the
|
||||
// "create agent from template" catalogue without relying on Python-side
|
||||
// initialization.
|
||||
|
||||
Reference in New Issue
Block a user