【问题标题】:Why Relational tables via Laravel migrations created with MyISAM which don't support relational features为什么通过 Laravel 迁移使用不支持关系功能的 MyISAM 创建的关系表
【发布时间】:2020-08-01 15:32:18
【问题描述】:

我注意到,Laravel 通过存储引擎创建表作为不支持关系功能的 MyISAM。

我已经通过迁移设置了外键,但是当我检查 Phpmyadmin 时,由于存储引擎是 MyISAM,它没有显示任何关系功能。

我已经读到,如果我更改为 InnoDB,则可以应用关系。

但我的问题是,如果我不能添加关系,那么为什么 Laravel 将存储引擎作为 MyISAM 呢? 不需要在数据库中放置关系吗?这会使我的数据库易受攻击。

Laravel 的最佳实践是什么?

【问题讨论】:

  • MySQL 的最佳实践是使用 InnoDB,而不是 MyISAM。时期。句号。如果 Laravel 想使用 MyISAM,请不要使用 Laravel。

标签: laravel relational-database innodb myisam


【解决方案1】:

其实,把数据库表做成 MyISAM 的不一定是 Laravel。如果您未指定,则将使用 MySQL 版本/安装的默认存储引擎创建表。在您的情况下,它可能是 MyISAM。 要确保使用 InnoDB,请编辑 config/database.php 文件并设置 'engine' => 'InnoDB',

【讨论】:

    猜你喜欢
    • 2020-04-13
    • 2021-07-12
    • 2020-12-16
    • 1970-01-01
    • 2017-01-04
    • 2020-05-08
    • 2012-11-12
    • 2018-06-21
    • 1970-01-01
    相关资源
    最近更新 更多