#laravel #migration #laravel-7
#laravel #миграция #laravel-7
Вопрос:
Я работаю над проектом и хочу сделать столбец временных меток в базе данных неизменяемым. В Symfony я знаю, как это сделать, но в Laravel я не понимаю.
class CreateUsersTable extends Migration
{
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('email')->unique();
$table->string('verification_code')->nullable();
$table->timestamp('accept_policy_at');
});
}
}
Комментарии:
1. mysql не поддерживает неизменяемые столбцы, и поэтому ваша миграция, даже если может существовать какой-то метод, который, похоже, это сделает, он не сработает (вы можете что-то сделать с триггерами на стороне DB или аксессором в модели)
2. В sql нет никакого способа изменить столбец. Но вы можете создать
accept_policy_at
один раз, а затем не обновлять это. Как иcreated_at
столбец в laravel, это поле столбца никогда не обновлялось после его вставки в таблицу.3. спасибо за советы! 🙂