J'ai commencé à jouer avec gorm aujourd'hui, mais je suis tombé sur une erreur idiote et je suis coincé dessus pendant un moment. Au début, je suis sur Windows et exécutez MySQL 5 (5.0.51b) et la dernière version de go. Je suis allé chercher le pilote gorm et mysql et il compile sans erreur et est capable de se connecter (probablement), mais chaque fois que j'essaye de créer une table basée sur le type déclaré, il renvoie une erreur qui n'est pas informative (car l'erreur est jeté par MySQL). Voici mon code:Erreur lors de la tentative de création de tables à partir du modèle
mport (
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/jinzhu/gorm"
)
type User struct {
id int
}
func main() {
db, err := gorm.Open("mysql", "root:[email protected]/shop?charset=utf8&parseTime=True&loc=Local")
fmt.Println(err)
a := db.Set("gorm:table_options", "ENGINE=InnoDB").CreateTable(&User{})
fmt.Println(a)
}
Ainsi, le modèle est destiné à être très basique, par ex. une table avec une colonne. Maintenant vient la sortie:
< nil > &{0x111e2230 Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') ENGINE=InnoDB' at line 1 0 0x112d4060 0x112d4000 0x112d8140 0 {0x112a3f20} false map[gorm:table_options:ENGINE=InnoDB] map[]}
La première est une erreur de connexion qui signifie qu'il est capable de se connecter, mais avec la requête, il est pas bon et l'erreur ne dit presque rien d'autre que SQL généré par Gorm échoue pour une raison quelconque. Donc, la question est de savoir si quelqu'un a une idée de la raison pour laquelle l'erreur est levée et s'il y a une solution.
Un grand merci pour votre réponse! Je ne savais pas à propos de cette lettre majuscule. – Gonzalez