我创建了一个名为"Listings"的新迁移,基本上我只是遵循TraversyMedia的速成课程来帮助我学习PHP和Laravel.

我想对 list 迁移添加一个简单的修改,以便它引用一个用户ID(‘poster’).

我是这样做的:

$table->unsignedBigInteger('user_id');
$table->foreign('user_id')->references('id')->on('users');

我确实迁移了:刷新,甚至try 了迁移:回滚,然后再次迁移,但无论如何,Listings表永远不会被删除,我必须手动完成.每一张桌子都被丢弃了,但这张和我不明白为什么.

它也有"向下"功能:

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::dropIfExists('listings');
}

我做错什么了吗?我错过什么了吗?

我使用的是:Laravel 9.38.0、PHP 8.1.10和Zend Engine v4.1.10

推荐答案

可能你用的是MyISAM s至rage engine.

MyISAM是非事务性存储类型,任何写入选项都需要手动回滚(如果需要).InnoDB是一种事务存储类型,如果写入未完成,它会自动回滚.

在您的/config/database.php文件中,将mysql数据更改为:

'engine' => null,

'engine' => 'InnoDB',

上述方法将适用于您的所有数据库表.

If you want 至 use InnoDB on specific table then add this line on your migration file as :

Schema::create('listings', function (Blueprint $table) {
    $table->engine = 'InnoDB';

    // ...
});

Database Connection & Table Options

Php相关问答推荐

composer如何解析包名?

从产品中获取WooCommerce产品属性单选按钮的列表WP_Query

根据用户组或登录状态显示或隐藏定价后添加的文本

模型中的Laravel自定义查询字段

WooCommerce HPOS管理订单列表中带有订单元数据的定制列

使注册字段UserMeta值对于WooCommerce中的每个用户是唯一的

Apache只允许index.php-不从根目录工作

FlySystem v3:使用本地适配器时出现问题

如何在Laravel Model中自定义多个日期属性的日期格式?

如何按类别过滤自定义帖子类型

上传WordPress模板中的翻译文件(.mo和.po)

Rappasoft Datatables V2(我想在另一个表具有相同值列时显示数据)

可以';exec、system和shell_exec PHP函数中的命令字符串上的字符数不得超过8175

如何使用属性创建属性预设?

为什么 ECDSA 384 签名验证在 GO 中失败,但在 PHP 中却没有?

PHP Loop 在迭代中使用修改后的数据

使用 splat 运算符时按引用传递 (...)

Symfony 自定义注销

基于其他数组创建多维数组 struct

Google Drive - 仅使用 FileID 获取文件的 FileSize