こんにちはhttps://laravel.com/docs/5.4/migrationsに含まれているすべてのドキュメントをお読みください。
特定の移行ファイルを移行する方法はありますか(1つの移行のみ)、使用する変更があり、php artisan migrate:refresh
すべてのフィールドがリセットされるたびに、今すぐ発生します。
こんにちはhttps://laravel.com/docs/5.4/migrationsに含まれているすべてのドキュメントをお読みください。
特定の移行ファイルを移行する方法はありますか(1つの移行のみ)、使用する変更があり、php artisan migrate:refresh
すべてのフィールドがリセットされるたびに、今すぐ発生します。
回答:
まず、次のmigration
ようにテーブル用に1つのファイルを作成する必要があります。
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をよいます:
php artisan migrate --path=/database/migrations/test/
このテーブルだけを更新して実行するには、移行ファイルにパスを追加する必要があります
php artisan migrate:refresh --path=/database/migrations/fileName.php
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
表のバッチ値は、移行の順序を定義します。ロールバックすると、最新またはバッチ値が最も高い移行が最初にロールバックされ、次に他の移行がロールバックされます。したがって、データベースの値を変更してから、特定の移行ファイルをロールバックできます。
テーブル構造間の関係のため、毎回バッチ番号を変更することはお勧めできませんが、単一のテーブルのロールバックがテーブル間の整合性に違反しない場合にこのケースを使用できます。
ご理解いただければ幸いです。
ファイルを新しいディレクトリ(例:selected)に配置してから適用する必要があります
php artisan migrate --path=/database/migrations/selected
ロールバックが必要な場合:
php artisan migrate:rollback --path=/database/migrations/selected
注意:
php artisan migrate:refresh
これにより、デフォルトのディレクトリ(/ database / migrations)にあるすべての移行ファイルがロールバックして移行されます
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:rollback
https://laravel.com/docs/5.4/migrations#rolling-back-migrations
'step'オプションを使用して、ロールバックする移行の数を指定できます。
php artisan migrate:rollback --step=1
ここでいくつかのトリックを利用できます。
特定のテーブルの移行
php artisan migrate --path=/database/migrations/fileName.php
1つの特定のテーブルを作成する場合。このコードを使用できます。laravel(5.x)バージョンで動作します。
php artisan migrate:refresh --path=/database/migrations/fileName.php
別のテーブルを作成する場合は、新しい移行ファイルを作成するだけです。それはうまくいくでしょう。
で名前users_table
を付けた移行を作成する場合id, first_name, last_name
。次のような移行ファイルを作成できます
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');
}
移行せずに「ステータス」のような別のファイルを追加する場合:更新。「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');
});
}
そして、でmigrateを実行するとphp artitsan migration
、新しい移行ファイルが移行されます。
ただし、ファイルされた「ステータス」を最初の管理ファイル(users_table)に追加して、移行を実行する場合。移行するものは何もありません。を実行する必要がありますphp artisan migrate:refresh
。
この助けを願っています。
このパッケージをインストールします
https://github.com/nilpahar/custom-migration/
このコマンドを実行します。
php artisan migrate:custom -f migration_name
これを使用できます。
-> https://packagist.org/packages/sayeed/custom-migrate
-> https://github.com/nilpahar/custom-migration/
これは非常に使いやすいです
このコマンドはターミナルでのみ実行できます
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
これが少しお役に立てば幸いです。ハッピーコーディング。
まず、次のコマンドを実行する必要があります。
ステップ1:
php artisan migrate:rollback
ステップ2:
php artisan migrate
テーブルがデータベースに戻ります。
php artisan migration:refresh
、同じように提供します。