Laravel 从迁移中迁移特定文件

您好阅读所有包括在 https://laravel.com/docs/5.4/migrations的文档。

有没有一种方法来迁移某个迁移文件(只有1个迁移) ,因为现在每次有一个变化,我使用 php artisan migrate:refresh和所有字段都得到重置。

385385 次浏览

只要查看数据库中的 migrations表,就会看到一个迁移文件名和批号值的列表。

假设你有如下结构,

id     migration                                           batch


1      2014_10_12_000000_create_users_table                  1
2      2014_10_12_100000_create_password_resets_table        1
3      2016_09_07_103432_create_tabel_roles                  1

如果只想回滚 2016_09_07_103432_create_tabel_roles迁移, 将它的迁移批量值改为2,这是所有迁移批量值中最高的,然后执行以下操作。

php artisan migrate:rollback

这里只有批量值为2的表将回滚。现在,更改该表并运行以下控制台命令。

php artisan migrate

migrations表中的批量值定义了迁移的顺序。回滚时,首先回滚最新的或具有最高批处理值的迁移,然后再回滚其他迁移。因此,您可以更改数据库中的值,然后回滚特定的迁移文件。

虽然由于表结构之间的关系,每次都更改批号不是一个好主意,但是我们可以在某些情况下使用这种方法,在这种情况下,单个表回滚不会破坏表之间的完整性。

希望你能理解。

你只能回滚:

php artisan migrate:rollback

Https://laravel.com/docs/5.4/migrations#rolling-back-migrations

您可以使用‘ step’选项指定要回滚到多少次迁移:

php artisan migrate:rollback --step=1

这里有一些小窍门:

在 Laravel 减少一个特定的移民

您可以尝试使用—— path = 选项来定义要执行的特定子文件夹,并在其中放置特定的迁移。

或者,您需要从 DB 和迁移表中删除引用和表,这并不理想:/

如果您想创建另一个表,只需创建一个新的迁移文件。

如果使用 id, first_name, last_name创建名为 users_table的迁移

    public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('first_name',255);
$table->string('last_name',255);
$table->rememberToken();
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('users');
}

如果您想添加另一个字段,比如“ status”而不需要迁移: 刷新。您可以创建另一个迁移文件,比如“ add _ status _ file _ to _ users _ table”

public function up()
{
Schema::table('users', function($table) {
$table->integer('status');
});
}

别忘了添加回滚选项:

public function down()
{
Schema::table('users', function($table) {
$table->dropColumn('status');
});
}

当您使用 php artisan migration运行迁移时,只需迁移新的迁移文件。

但是,如果您将字段“ status”添加到第一个迁移文件(users _ table)并运行迁移。没什么可迁移的。你需要运行 php artisan migrate:refresh

希望这能帮上忙。

首先,您应该为您的表创建一个 migration文件,如:

public function up()
{
Schema::create('test', function (Blueprint $table) {
$table->increments('id');
$table->string('fname',255);
$table->string('lname',255);
$table->rememberToken();
$table->timestamps();
});
}

迁徙文件夹中创建 测试文件夹后,将新创建的 迁徙移动/复制到 测试文件夹中,并在 终端/cmd 终端/cmd 终端/cmd 终端中运行以下命令,如下:

php artisan migrate --path=/database/migrations/test/

删除该表并从迁移表中删除其记录。

然后再次运行迁移:

php artisan migrate

或者您可以简单地从数据库中删除迁移文件名,在“迁移”表中,然后运行: Php artitsan 迁移

php artisan help migrate

你会看到选项:

—— PATH [ = PATH ]要执行的迁移文件的路径

顺便说一下,您可以指定要迁移的文件的根文件夹:

php artisan migrate --path=/database/migrations/sample.php

或者,您可以在迁移中创建一个新的文件夹,然后将所有您想要的迁移文件迁移到其中:

php artisan migrate --path=/database/migrations/new_folder

您需要将文件放入一个新的目录(例如: 选中的) ,然后应用

php artisan migrate  --path=/database/migrations/selected

如果需要回滚:

php artisan migrate:rollback  --path=/database/migrations/selected

注:

php artisan migrate:refresh

这将回滚,然后将所有迁移文件迁移到默认目录(/database/ 迁移)

只是想发布另一个解决方案,我认为值得一提。

  1. 在迁移表中查找具有迁移名称的行并将其 DELETE。 它应该是这样的: 2016 _ 06 _ 01 _ 00001 _ create _ oauth _ auth _ code _ table
  2. 从数据库中删除表,例如 DROPTABLE oauth _ auth _ code
  3. 运行 php 工匠迁移

它将只迁移您需要的表,而不会触及其他任何内容

您应该将路径添加到您的迁移文件,以刷新该表并运行

php artisan migrate:refresh --path=/database/migrations/fileName.php

更正-删除数据库前的斜杠

$ php artisan migrate --path=database/migrations/migration.php

安装这个软件包

Https://github.com/nilpahar/custom-migration/

运行这个命令。

php artisan migrate:custom -f migration_name

特定表迁移

php artisan migrate --path=/database/migrations/fileName.php

如果您使用选项卡自动完成

php artisan migrate --path='./database/migrations/2019_12_31_115457_create_coworking_personal_memberships_table.php'

如果你想创建一个和特定的表。你可以使用这个代码。它适用于 laravel (5.x)版本。

php artisan migrate:refresh --path=/database/migrations/fileName.php

个人迁移—— path =/database/ 迁移/fileName.php

按照指令执行这个命令文件名应该是您的迁移表名 例如: 个人迁移—— path =/database/ 迁移/2020 _ 02 _ 21 _ 101937 _ create _ jobs _ table. php

您可以像这样运行命令

php artisan migrate --path=/database/migrations/2020_04_10_130703_create_test_table.php

首先,你应该发出以下指令:

第一步:

php artisan migrate:rollback

第二步:

php artisan migrate

您的表将回到数据库中。

只能在终端中运行此命令

php artisan migrate --path=database/migrations/2020_10_01_164611_create_asset_info_table.php

迁移之后,您应该放置特定的文件名。或者,如果您在迁移中有任何文件夹,那么只需在迁移后添加该文件夹名称。

像这样

php artisan migrate --path=database/migrations/yourfolder/2020_10_01_164611_create_asset_info_table.php

我希望这能对你有所帮助,编码愉快。

php artisan migrate --path=database/migrations/2020_04_10_130703_create_test_table.php

注意 :

路径 no/before

php artisan migrate --path=/database/migrations/fileName.php

迁移时不必刷新,因为 刷新的意思是: 回放 并再次运行它们

您也可以再次迁移迁移表,但首先需要进入数据库迁移表并删除指定迁移名称的行。 然后点击 php 手工迁移

对于特定文件,运行以下命令:

php artisan migrate:refresh --path="database/migrations/Your_Migration_File_Name_table.php"


这里的 --file= 表示文件的位置,而 migrate:refresh将清空表数据

如果要从数据库中清空所有表的数据,请运行

php artisan migrate:refresh指令。

获取迁移的实际文件名和路径,并运行如下命令

php artisan migrate --path=/database/migrations/2021_10_03_071450_create_reset_codes_table.php

只需使用—— path 标志,不需要使用回滚、刷新或任何其他命令。 例如:

php artisan migrate --path=/database/migrations/migration_file_name.php

用途: --path=database/migrations/your_migration_file_name.php

例子:

Php 工匠 迁移: 刷新 --path=database/migrations/your_migration_file_name.php

Php 工匠 回滚 --path=database/migrations/your_migration_file_name.php

Php 工匠 迁徙 --path=database/migrations/your_migration_file_name.php

参考文献: 产卵幼虫迁移

你可使用:

php artisan migrate:refresh --path=/database/migrations/<migration table here>