migrate from github
This commit is contained in:
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user