マイグレーションで数値型→文字列型へのカラム変更が必要になり、変更時は問題なかったものの、rollback時に以下のエラーが発生。
Doctrine\DBAL\Driver\PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1064
You have an error in your SQL syntax;
check the manual that corresponds to your MariaDB server version for the right syntax to use near
'CHARACTER SET utf8mb4 NOT NULL COLLATE `utf8mb4_unicode_ci`, CHANGE fax fax BIGI' at line 1")
原因がわからず困っていたが、よく読むとcharsetが云々書いてあったので、↓で文字列型の時に残っているcahrsetをnull
にして解決!
class AddStelToUsersTable extends Migration
{
/**
* Run the migrations.
*/
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->string('s_tel')->nullable()->after('tel');
$table->string('tel')->change();
$table->string('fax')->nullable()->change();
});
}
/**
* Reverse the migrations.
*/
public function down()
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('s_tel');
$table->bigInteger('tel')->charset(null)->change();
$table->bigInteger('fax')->charset(null)->nullable()->change();
});
}
}