我正在使用 PHP 的 Laravel 框架进行开发。我想使用迁移来创建和操作表。这些是我采取的步骤:
我用命令创建迁移php artisan migrate:make create_users_table
,它创建一个迁移文件,并在其 up 函数中,我写下了我的架构,然后运行它并成功执行。
之后,我再次尝试运行相同的迁移,结果显示错误“表存在”。
-
然后我尝试使用回滚功能,但它给出错误“无可回滚”。
那么,如何回滚该迁移或执行迁移的向下功能。另外,当我创建新的迁移并在迁移文件的 up 函数中时,我编写了用于删除由之前的迁移创建的表的代码,并使用命令执行php artisan migrate
,由此所有迁移都已执行(也是我之前的迁移)并向我显示错误“表已存在”(显而易见)。
那么,现在我陷入困境,是否有一个函数可以执行特殊/特定的迁移?我该怎么做呢?
当您使用以下命令创建迁移时artisan migrate:make
你应该写up
and down
方法。这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');
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)