Laravel & InnoDB
Je suis à l'aide de laravel et laravel mécanisme de migration. J'ai créé des tableaux et seted clés étrangères. Mais les tables sont MyISSAM donc pas les clés étrangères sont créés. Où puis-je activer ou configurer cela? (pour changer en InnoDB, et non dans le serveur mysql).
OriginalL'auteur DigitalWM | 2012-07-06
Vous devez vous connecter pour publier un commentaire.
Vous pouvez régler le moteur à l'intérieur de Schéma\Tableau de fermeture.
Yup, lien mort.
Maintenant, la façon de le faire est de ici en Connexion & Moteur de Stockage
OriginalL'auteur crynobone
Vous pouvez modifier votre /config/database.php fichier, recherche pour mysql entrée et le changement:
'engine' => null,
à
'engine' => 'InnoDB',
Cela vous permet d'économiser de l'ajout de
$table->engine = "InnoDB";
pour chacun de vos Schémas 😉Vous êtes les bienvenus 🙂
Il faut l'accepté de répondre.
La question est maintenant, pourquoi Laravel permet de créer la clé étrangère dans les migrations de fichiers à l'aide de MyISAM. L'utilisation de MySQL 5.7 (donc avec InnoDB par défaut), le
migrate
commande toujours crée la table avec MyISAM, et mes clés étrangères ne sont que des indices. Bizarre.OriginalL'auteur Thomas LAURENT
Définir moteur, comme ce
OriginalL'auteur srsajid
Je vous recommande de mettre à jour votre Mysql 5.5 ou supérieur. Le moteur de stockage par défaut pour Mysql est maintenant InoDB
http://dev.mysql.com/doc/refman/5.5/en/myisam-storage-engine.html
Une fois cela fait, vous pouvez facilement faire correspondre les relations au sein de l'entité par le biais des classes Laravel
ALTER TABLE t ENGINE=InnoDB;
(pour chaquet
).OriginalL'auteur Akash
Utiliser les tables InnoDb sur le côté serveur, c'est le meilleur chemin vers le succès. Utilisation MySQL Workbench. Il est facile dans Workbench. Et, si vous voulez lire le natif manuel
OriginalL'auteur RDK
Une autre approche (pour qui n'utilise pas database.php) est à inclure dans
.env
fichier:DB_ENGINE=InnoDB
OriginalL'auteur Tiago Gouvêa