Laravel 从迁移中迁移特定文件
Laravel Migrate Specific File(s) from Migrations
您好,请阅读 https://laravel.com/docs/5.4/migrations 中包含的所有文档。
有没有办法迁移某个迁移文件(仅限 1 个迁移),因为现在每次我使用 php artisan migrate:refresh
进行更改时,所有字段都会被重置。
看看你的数据库中的migrations
table,会有一个迁移文件名和批号值的列表。
假设你有以下结构,
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 的 table 会被回滚。现在,按照控制台命令对 table 和 运行 进行更改。
php artisan migrate
migrations
table 中的批处理值定义了迁移的顺序。回滚时,最新的或具有最高批次值的迁移首先回滚,然后再回滚其他迁移。因此,您可以更改数据库中的值,然后回滚特定的迁移文件。
虽然由于table结构之间的关系,每次都更改批号不是一个好主意,但我们可以在某些情况下使用这种情况单次table回滚不违反table 之间的完整性。
希望你明白。
您只能回滚:
php artisan migrate:rollback
https://laravel.com/docs/5.4/migrations#rolling-back-migrations
您可以使用 'step' 选项指定回滚到多少迁移:
php artisan migrate:rollback --step=1
这里有一些技巧:
您可以尝试使用 --path= 选项来定义您要执行的特定子文件夹,并将特定的迁移放在那里。
或者,您需要从数据库和迁移表中删除引用和表,这并不理想:/
如果要创建另一个 table,只需创建一个新的迁移文件。它会起作用的。
如果您使用 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');
}
如果您想在没有 migrate:refresh 的情况下添加另一个字段,例如“状态”。您可以创建另一个迁移文件,如“add_status_filed_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
迁移时,只需迁移新的迁移文件。
但是如果您在第一个迁移文件 (users_table) 和 运行 迁移中添加字段“status”。迁移没什么。你需要 运行 php artisan migrate:refresh
.
希望对您有所帮助。
首先,您应该为 table 创建一个 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();
});
}
在 migrations 文件夹中创建 test 文件夹后,然后新建 migration moved/copied 在 test 文件夹和 运行 下面的命令中 terminal/cmd like:
php artisan migrate --path=/database/migrations/test/
删除 table 并从迁移中移除其记录 table。
之后您只需 运行 再次迁移:
php artisan migrate
或者您可以简单地从数据库中删除迁移文件名,在 "migrations" table 然后 运行 : php artitsan migration
你可以用这个。
-> https://packagist.org/packages/sayeed/custom-migrate
-> https://github.com/nilpahar/custom-migration/
这个非常好用
php artisan help migrate
您将看到选项:
--path[=PATH] The path to the migrations files to be executed
顺便说一句,您可以指定要迁移的文件的根文件夹:
php artisan migrate --path=/database/migrations/sample.php
或者,您可以在migrations中新建一个文件夹,然后在其中迁移您想要的所有迁移文件:
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/migrations)
只是想 post 另一个我认为值得一提的解决方案。
- 在迁移 table 中找到包含您的迁移名称的行并将其删除。
它应该是这样的:2016_06_01_000001_create_oauth_auth_codes_table
- 从数据库中删除您的 table,例如丢弃 TABLE oauth_auth_codes
- 运行 php artisan 迁移
它只会迁移您需要的 table,不会触及任何其他内容
您应该将路径添加到您的迁移文件以刷新此 table 和 运行
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
特定Table迁移
php artisan migrate --path=/database/migrations/fileName.php
如果您使用制表符进行自动完成
php artisan migrate --path='./database/migrations/2019_12_31_115457_create_coworking_personal_memberships_table.php'
如果你想创建一个特定的table。您可以使用此代码。它适用于 laravel(5.x) 个版本。
php artisan migrate:refresh --path=/database/migrations/fileName.php
php artisan 迁移 --path=/database/migrations/fileName.php
只需按照说明执行此命令文件名这里应该是您的迁移名称table
例子:
php artisan 迁移 --path=/database/migrations/2020_02_21_101937_create_jobs_table.php
你可以运行这样的命令
php artisan migrate --path=/database/migrations/2020_04_10_130703_create_test_table.php
首先你应该执行以下命令:
第 1 步:
php artisan migrate:rollback
第 2 步:
php artisan migrate
您的 table 将返回数据库。
您只能在终端中运行执行此命令
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
注意 :
after --path no / before
php artisan migrate --path=/database/migrations/fileName.php
迁移不需要刷新,因为刷新意味着:回滚 所有迁移和运行 他们又一次.
您也可以再次迁移迁移 table 但首先您需要进入数据库迁移 table 并删除特定迁移名称的行。
然后点击 php artisan migrate
对于特定文件 运行 此命令:
php artisan migrate:refresh --path="database/migrations/Your_Migration_File_Name_table.php"
这里 --file=
是你文件的位置,migrate:refresh
将清空你的 table 数据
如果您想从数据库中清空所有 table 的数据,那么 运行
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 artisan 迁移:刷新 --path=database/migrations/your_migration_file_name.php
php artisan 迁移:回滚 --path=database/migrations/your_migration_file_name.php
php artisan 迁移 --path=database/migrations/your_migration_file_name.php
您好,请阅读 https://laravel.com/docs/5.4/migrations 中包含的所有文档。
有没有办法迁移某个迁移文件(仅限 1 个迁移),因为现在每次我使用 php artisan migrate:refresh
进行更改时,所有字段都会被重置。
看看你的数据库中的migrations
table,会有一个迁移文件名和批号值的列表。
假设你有以下结构,
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 的 table 会被回滚。现在,按照控制台命令对 table 和 运行 进行更改。
php artisan migrate
migrations
table 中的批处理值定义了迁移的顺序。回滚时,最新的或具有最高批次值的迁移首先回滚,然后再回滚其他迁移。因此,您可以更改数据库中的值,然后回滚特定的迁移文件。
虽然由于table结构之间的关系,每次都更改批号不是一个好主意,但我们可以在某些情况下使用这种情况单次table回滚不违反table 之间的完整性。
希望你明白。
您只能回滚:
php artisan migrate:rollback
https://laravel.com/docs/5.4/migrations#rolling-back-migrations
您可以使用 'step' 选项指定回滚到多少迁移:
php artisan migrate:rollback --step=1
这里有一些技巧:
您可以尝试使用 --path= 选项来定义您要执行的特定子文件夹,并将特定的迁移放在那里。
或者,您需要从数据库和迁移表中删除引用和表,这并不理想:/
如果要创建另一个 table,只需创建一个新的迁移文件。它会起作用的。
如果您使用 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');
}
如果您想在没有 migrate:refresh 的情况下添加另一个字段,例如“状态”。您可以创建另一个迁移文件,如“add_status_filed_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
迁移时,只需迁移新的迁移文件。
但是如果您在第一个迁移文件 (users_table) 和 运行 迁移中添加字段“status”。迁移没什么。你需要 运行 php artisan migrate:refresh
.
希望对您有所帮助。
首先,您应该为 table 创建一个 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();
});
}
在 migrations 文件夹中创建 test 文件夹后,然后新建 migration moved/copied 在 test 文件夹和 运行 下面的命令中 terminal/cmd like:
php artisan migrate --path=/database/migrations/test/
删除 table 并从迁移中移除其记录 table。
之后您只需 运行 再次迁移:
php artisan migrate
或者您可以简单地从数据库中删除迁移文件名,在 "migrations" table 然后 运行 : php artitsan migration
你可以用这个。
-> https://packagist.org/packages/sayeed/custom-migrate
-> https://github.com/nilpahar/custom-migration/
这个非常好用
php artisan help migrate
您将看到选项:
--path[=PATH] The path to the migrations files to be executed
顺便说一句,您可以指定要迁移的文件的根文件夹:
php artisan migrate --path=/database/migrations/sample.php
或者,您可以在migrations中新建一个文件夹,然后在其中迁移您想要的所有迁移文件:
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/migrations)
只是想 post 另一个我认为值得一提的解决方案。
- 在迁移 table 中找到包含您的迁移名称的行并将其删除。 它应该是这样的:2016_06_01_000001_create_oauth_auth_codes_table
- 从数据库中删除您的 table,例如丢弃 TABLE oauth_auth_codes
- 运行 php artisan 迁移
它只会迁移您需要的 table,不会触及任何其他内容
您应该将路径添加到您的迁移文件以刷新此 table 和 运行
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
特定Table迁移
php artisan migrate --path=/database/migrations/fileName.php
如果您使用制表符进行自动完成
php artisan migrate --path='./database/migrations/2019_12_31_115457_create_coworking_personal_memberships_table.php'
如果你想创建一个特定的table。您可以使用此代码。它适用于 laravel(5.x) 个版本。
php artisan migrate:refresh --path=/database/migrations/fileName.php
php artisan 迁移 --path=/database/migrations/fileName.php
只需按照说明执行此命令文件名这里应该是您的迁移名称table 例子: php artisan 迁移 --path=/database/migrations/2020_02_21_101937_create_jobs_table.php
你可以运行这样的命令
php artisan migrate --path=/database/migrations/2020_04_10_130703_create_test_table.php
首先你应该执行以下命令:
第 1 步:
php artisan migrate:rollback
第 2 步:
php artisan migrate
您的 table 将返回数据库。
您只能在终端中运行执行此命令
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
注意 :
after --path no / before
php artisan migrate --path=/database/migrations/fileName.php
迁移不需要刷新,因为刷新意味着:回滚 所有迁移和运行 他们又一次.
您也可以再次迁移迁移 table 但首先您需要进入数据库迁移 table 并删除特定迁移名称的行。 然后点击 php artisan migrate
对于特定文件 运行 此命令:
php artisan migrate:refresh --path="database/migrations/Your_Migration_File_Name_table.php"
这里 --file=
是你文件的位置,migrate:refresh
将清空你的 table 数据
如果您想从数据库中清空所有 table 的数据,那么 运行
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 artisan 迁移:刷新 --path=database/migrations/your_migration_file_name.php
php artisan 迁移:回滚 --path=database/migrations/your_migration_file_name.php
php artisan 迁移 --path=database/migrations/your_migration_file_name.php