Migration 运行一个特定的Laravel迁移(单个文件)
我不想在laravel 4上运行所有未完成的迁移。我有5次迁移。现在我只想运行一次迁移。 而不是:php artisan迁移Migration 运行一个特定的Laravel迁移(单个文件),migration,laravel,laravel-4,Migration,Laravel,Laravel 4,我不想在laravel 4上运行所有未完成的迁移。我有5次迁移。现在我只想运行一次迁移。 而不是:php artisan迁移 我想运行一个特定的迁移,比如:php artisan将我的_迁移_迁移到_运行看起来你做得不对 迁移是由Laravel一个接一个地执行的,按照创建迁移的确切顺序执行的,因此它可以跟踪执行情况和执行顺序。这样,Laravel将能够安全地回滚一批迁移,而不会破坏您的数据库 给用户手动执行它们的能力,就不可能知道(确实)如何回滚数据库中的更改 如果您确实需要在数据库中执行某些操
我想运行一个特定的迁移,比如:php artisan将我的_迁移_迁移到_运行看起来你做得不对 迁移是由Laravel一个接一个地执行的,按照创建迁移的确切顺序执行的,因此它可以跟踪执行情况和执行顺序。这样,Laravel将能够安全地回滚一批迁移,而不会破坏您的数据库 给用户手动执行它们的能力,就不可能知道(确实)如何回滚数据库中的更改 如果您确实需要在数据库中执行某些操作,那么最好创建一个DDL脚本并在Web服务器上手动执行它 或者只是创建一个新的迁移并使用artisan执行它 编辑: 如果需要首先运行它,则需要首先创建它 如果只需要对它们重新排序,请将该文件重命名为第一个文件。迁移是使用TimeTemp创建的:
2013_01_20_221554_table
要在此迁移之前创建新迁移,可以命名它
2013_01_19_221554_myFirstMigration
这是一个很好的小片段,可以缓解运行Laravel 4迁移时的恐惧
php artisan迁移--假装。这将只输出在运行实际迁移时会运行的SQL
听起来您最初的4次迁移已经运行。我猜,当您phpartisan迁移时
只会运行最新的迁移
建议:确保你所有的上下动作都按照你的预期进行。我喜欢在运行迁移时运行up()、down()、up(),只是为了测试它们。如果您进行了5到6次迁移,并且意识到您无法轻松地回滚它们,这将是非常糟糕的,因为您没有将向下()与向上()100%匹配
就我的两分钱!希望--假装有帮助。重新运行迁移的唯一方法是脏迁移。您需要打开数据库并删除migrations表中表示迁移的行
然后再次运行php artisan migrate。只需将已运行的迁移移出app/config/database/migrations/文件夹即可。然后运行命令php-artisan-migrate
。这对我来说是一种魅力。如果只是为了测试,我就是这样做的:
就我而言,我有几个迁移,其中一个包含应用程序设置
当我测试应用程序时,并不是所有的迁移都已经设置好了,我只是将它们移动到一个新文件夹“future”中。artisan不会触及此文件夹,它只会执行您想要的迁移
肮脏的解决方法,但它有效…我在另一篇文章中给出了这个答案,但您可以这样做:运行artisan migrate
运行所有迁移,然后使用以下SQL命令更新迁移表,使迁移看起来像是一次运行一个:
SET @a = 0;
UPDATE migrations SET batch = @a:=@a+1;
这会将批处理列更改为1,2,3,4。。等等。如果您只想影响某些迁移,请在此处添加WHERE batch>=…
条件(并更新@a
的初始值)
在此之后,您可以根据需要执行artisan migrate:rollback
,并且它将一次一个地完成迁移。如果要运行最新的迁移文件,请执行以下操作:
php artisan migrate
php artisan migrate --path=/database/migrations/migrations_file_name
您还可以在添加迁移之前恢复到:
php artisan migrate: rollback
您可以将迁移放在更多文件夹中并运行以下操作:
php artisan migrate --path=/app/database/migrations/my_migrations
这么简单。。。!只需转到您的迁移文件夹。将所有迁移文件移到另一个文件夹中。然后将所有迁移逐一返回到迁移文件夹中,并为其中一个(php artisan)运行迁移。当您将错误的迁移文件插入主迁移文件夹并在命令提示符下运行php artisan migrate时,将出现错误。我也有同样的问题。
在第一个迁移文件中复制表创建代码,如下所示:
public function up()
{
Schema::create('posts', function(Blueprint $table){
$table->increments('id');
// Other columns...
$table->timestamps();
});
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
// Other columns...
$table->softDeletes()->nullable();
});
}
您还可以更改(减少)批处理
迁移
表中的列号;)
然后运行php artisan migrate
在迁移中抛出异常,如果您不想应用它,它将停止整个迁移过程
使用这种方法,您可以将一系列迁移分为多个步骤。我知道有一种简单的方法,您只能在本地主机上进行迁移。
php artisan migrate
。这将只迁移数据库中迁移表中不存在的表祝您好运您可以从终端为迁移创建一个单独的目录,如下所示:
mkdir /database/migrations/my_migrations
然后将要运行的特定迁移移动到该目录,并运行以下命令:
php artisan migrate --path=/database/migrations/my_migrations
希望这有帮助 我在第1行使用了return,因此之前的dbs将保留原样
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
return; // This Line
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name', 50);
$table->string('slug', 50)->unique();
$table->integer('role_id')->default(1);
$table->string('email', 50)->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('mobile', 10)->unique();
$table->timestamp('mobile_verified_at')->nullable();
$table->text('password');
$table->integer('can_login')->default(1);
$table->rememberToken();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
return;// This Line
Schema::dropIfExists('users');
}
}
这是我使用的一种糟糕的方法。。我将删除除我要迁移的特定文件之外的其他迁移文件,然后运行PHP artisan migrate迁移完成后,我将转到我的垃圾箱并恢复删除的文件对于仍对此感兴趣的任何人,Laravel 5更新:Laravel已实现一次运行一个迁移文件的选项(在5.7版中).
您现在可以运行以下操作:
php artisan迁移
public function register()
{
$this->app->extend('migrator', function ($migrator, $app) {
return new MultipleSpecificMigrationsEnabledMigrator($migrator);
});
// We reset the command.migrate bind, which uses the migrator - to
// force refresh of the migrator instance.
$this->app->instance('command.migrate', null);
}
php artisan migrate --path=/database/migrations/migrations_file_name
C:\xampp\htdocs\laravelv3s>php artisan migrate --path=/database/migrations/2020_02_14_102647_create_blogs_table.php