У меня есть столбец типа enum
Я хочу изменить его на тип varchar
, но возникает ошибка из-за неправильного синтаксиса sql, пожалуйста, каково решение
Это создание таблицыкод миграции
class CreateCurrenciesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
$symbols = ['₦', '$', '£'];
Schema::create('currencies', function (Blueprint $table) use($symbols) {
$table->increments('id');
$table->string('name', 50);
$table->string('code', 5);
$table->enum('symbol', $symbols);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
DB::statement('SET FOREIGN_KEY_CHECKS = 0');
Schema::dropIfExists('currencies');
DB::statement('SET FOREIGN_KEY_CHECKS = 1');
}
Это код миграции, который я хочу использовать для изменения типа столбца, но продолжаю получать ошибку
class AddSymbolToImagesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('images', function (Blueprint $table) {
DB::statement('ALTER TABLE images ALTER COLUMN symbol VARCHAR(200)');
// $table->text('symbol')->change();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('images', function (Blueprint $table) {
// $symbols = ['₦', '$', '£'];
// $table->enum('symbol', $symbols)->change();
DB::statement('ALTER TABLE images ALTER COLUMN symbol enum ');
});
}
}