migrate from github

This commit is contained in:
2026-07-15 22:42:31 +08:00
commit 3ad559f05e
262 changed files with 21637 additions and 0 deletions
+25
View File
@@ -0,0 +1,25 @@
package main
import (
"github.com/sirupsen/logrus"
"github.com/XingfenD/yoresee_doc/internal/bootstrap"
)
func main() {
initializer := bootstrap.NewInitializer().
InitConfig().
InitPostgres()
if err := initializer.Err(); err != nil {
logrus.Fatalf("Init migrate failed: %v", err)
}
defer initializer.Shutdown()
logrus.Println("Starting migration...")
if err := runMigration(); err != nil {
logrus.Fatalf("Migration failed: %v", err)
}
logrus.Println("Database migration completed successfully")
}
+69
View File
@@ -0,0 +1,69 @@
package main
import (
"github.com/XingfenD/yoresee_doc/internal/model"
"github.com/XingfenD/yoresee_doc/pkg/storage"
"github.com/sirupsen/logrus"
"gorm.io/gorm"
)
func runMigration() error {
if err := storage.DB.Exec("CREATE EXTENSION IF NOT EXISTS ltree").Error; err != nil {
return err
}
logrus.Println("ltree extension created successfully")
err := storage.DB.AutoMigrate(
&model.Attachment{},
&model.Document{},
&model.DocumentComment{},
&model.DocumentYjsSnapshot{},
&model.DocumentVersion{},
&model.Invitation{},
&model.InvitationRecord{},
&model.KnowledgeBase{},
&model.RecentDocument{},
&model.RecentKnowledgeBase{},
&model.RecentTemplate{},
&model.MembershipRelation{},
&model.Notification{},
&model.OrgNodeMeta{},
&model.Template{},
&model.UserGroupMeta{},
&model.User{},
)
if err != nil {
return err
}
if err := migrateRecentKnowledgeBaseIndex(storage.DB); err != nil {
return err
}
if err := migrateRecentDocumentIndex(storage.DB); err != nil {
return err
}
if err := migrateRecentTemplateIndex(storage.DB); err != nil {
return err
}
if err := dropDocumentCommentQuote(storage.DB); err != nil {
return err
}
return nil
}
func migrateRecentKnowledgeBaseIndex(db *gorm.DB) error {
return db.Exec("CREATE UNIQUE INDEX IF NOT EXISTS idx_recent_kb_user_kb ON recent_knowledge_bases (user_id, knowledge_base_id)").Error
}
func migrateRecentTemplateIndex(db *gorm.DB) error {
return db.Exec("CREATE UNIQUE INDEX IF NOT EXISTS idx_recent_tpl_user_tpl ON recent_templates (user_id, template_id)").Error
}
func migrateRecentDocumentIndex(db *gorm.DB) error {
return db.Exec("CREATE UNIQUE INDEX IF NOT EXISTS idx_recent_doc_user_doc ON recent_documents (user_id, document_id)").Error
}
func dropDocumentCommentQuote(db *gorm.DB) error {
return db.Exec("ALTER TABLE document_comments DROP COLUMN IF EXISTS quote").Error
}