timestampはデフォルトで, CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP属性がつく
マイグレーションファイルでtimestamp
のカラムを設定すると, レコードを更新すると日付が自動更新されるようになっています. DBを確認すると, カラムの属性にCURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
がついています. これを消せばカラムが自動更新することがなくなります.
migrate.php
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class TestTable extends Migration
{
public function up() {
Schema::create('test_tables', function (Blueprint $table) {
$table->timestamp('output_at')->comment('出力日時');
});
}
// 略
}
nullableにするだけ
マイグレーションファイルのカラムを設定するときにnullable
と追加すると, CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
が消えるようになります.
migrate_new.php
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class TestTable extends Migration
{
public function up() {
Schema::create('test_tables', function (Blueprint $table) {
$table->timestamp('output_at')->nullable()->comment('出力日時');
});
}
// 略