MCPcopy Index your code
hub / github.com/TruthHun/BookStack / ExportDatabaseTable

Function ExportDatabaseTable

commands/migrate/migrate.go:115–157  ·  view source on GitHub ↗

导出数据库的表结构

()

Source from the content-addressed store, hash-verified

113
114//导出数据库的表结构
115func ExportDatabaseTable() ([]string, error) {
116 dbAdapter := beego.AppConfig.String("db_adapter")
117 dbDatabase := beego.AppConfig.String("db_database")
118 tables := make([]string, 0)
119
120 o := orm.NewOrm()
121 switch dbAdapter {
122 case "mysql":
123 {
124 var lists []orm.Params
125 _, err := o.Raw(fmt.Sprintf("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '%s'", dbDatabase)).Values(&lists)
126 if err != nil {
127 return tables, err
128 }
129 for _, table := range lists {
130 var results []orm.Params
131
132 _, err = o.Raw(fmt.Sprintf("show create table %s", table["TABLE_NAME"])).Values(&results)
133 if err != nil {
134 return tables, err
135 }
136 tables = append(tables, results[0]["Create Table"].(string))
137 }
138 break
139 }
140 case "sqlite3":
141 {
142 var results []orm.Params
143 _, err := o.Raw("SELECT sql FROM sqlite_master WHERE sql IS NOT NULL ORDER BY rootpage ASC").Values(&results)
144 if err != nil {
145 return tables, err
146 }
147 for _, item := range results {
148 if sql, ok := item["sql"]; ok {
149 tables = append(tables, sql.(string))
150 }
151 }
152 break
153 }
154
155 }
156 return tables, nil
157}
158
159func RegisterMigration() {
160 migrationList.items = list.New()

Callers 2

AddMigrationRecordMethod · 0.85

Calls 1

appendFunction · 0.50

Tested by

no test coverage detected