gpt4 book ai didi

php - 如何使用 laravel 迁移

转载 作者:搜寻专家 更新时间:2023-10-31 21:09:48 25 4
gpt4 key购买 nike

我正在使用 php 的 Laravel 框架进行开发。我想使用迁移来创建表操作。这些是我采取的步骤:

  1. 我使用命令 php artisan migrate:make create_users_table 创建迁移,它创建了一个迁移文件,在它的 up 函数中,我写下了我的架构,然后运行它,它成功了执行。

  2. 之后,我再次尝试运行相同的迁移,结果显示错误“表存在”。

  3. 然后我尝试使用回滚函数,但它给出错误“没有什么可以回滚”。

    那么,如何回滚该迁移或执行迁移的向下功能。此外,当我创建新的迁移并在迁移文件的 up 函数中,我编写了用于删除由我之前的迁移创建的表的代码,并使用命令 php artisan migrate 执行,由此所有迁移都被执行(也是我的较早的一个)并向我显示错误“表已存在”(很明显)。

所以,现在我卡住了,是否有执行特殊/特定迁移的功能?我该怎么做?

最佳答案

当您使用 artisan migrate:make 创建迁移时,您应该编写 updown 方法。 down 方法应该执行与 up 方法相反的操作。

public function up()
{
Schema::create('users', function($table)
{
$table->increments('id');
$table->string('username');
});
}

public function down()
{
// We DROP the table because we created it in the "up" method.
Schema::drop('users');
}

在我看来你的 up 方法中有一些不属于那里的代码,尽管如果没有看到你的代码就很难说。我建议您清除我们的 migrations 表(可能有也可能没有任何记录)。您还需要手动删除通过迁移创建的表。然后您可以重新开始。

请记住,您也可以使用 dropIfExists 仅在表存在时删除它。

public function down()
{
// Drop the table only if it exists.
Schema::dropIfExists('users');
}

关于php - 如何使用 laravel 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23010146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com