Guest User

Untitled

a guest
Jan 14th, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "fmt"
  5. "log"
  6. "os"
  7. "strconv"
  8.  
  9. "github.com/Shelnutt2/db2struct"
  10. "github.com/jinzhu/gorm"
  11. _ "github.com/jinzhu/gorm/dialects/mysql"
  12. )
  13.  
  14. //Program to reverse engineer your mysql database into gorm models
  15. func main() {
  16. user := "root"
  17. pass := "root"
  18. host := "localhost"
  19. database := "blahblah"
  20. port := 3306
  21. packagename := "models"
  22. fmt.Println("Connecting to mysql server " + host + ":" + strconv.Itoa(port))
  23. db, err := gorm.Open("mysql", user+":"+pass+"@/"+database+"?charset=utf8&parseTime=True&loc=Local")
  24. if err != nil {
  25. log.Fatalln("Failed to connect database")
  26. }
  27. defer db.Close()
  28. //Get all the tables from Database
  29. rows, err := db.Raw("SHOW TABLES").Rows()
  30. defer rows.Close()
  31. for rows.Next() {
  32. var table string
  33. rows.Scan(&table)
  34. columnDataTypes, err := db2struct.GetColumnsFromMysqlTable(user, pass, host, port, database, table)
  35. if err != nil {
  36. fmt.Println("Error in selecting column data information from mysql information schema")
  37. return
  38. }
  39. // Generate struct string based on columnDataTypes
  40. struc, err := db2struct.Generate(*columnDataTypes, table, table, packagename, false, true, false)
  41. if err != nil {
  42. fmt.Println("Error in creating struct from json: " + err.Error())
  43. return
  44. }
  45. file, err := os.Create(packagename + "/" + table + ".go")
  46. if err != nil {
  47. log.Fatal("Cannot create file", err)
  48. }
  49. defer file.Close()
  50. fmt.Fprintf(file, string(struc))
  51. log.Println("Wrote " + table + ".go to disk")
  52. }
  53.  
  54. }
Add Comment
Please, Sign In to add comment