Error when renaming Table Column in Laravel migration

Amir :

I have got An error when I tries to rename columns using the code below:

class RenameProductsColumns extends Migration
{
public function up()
{
    Schema::table('products', function (Blueprint $table) {
        $table->renameColumn("name-ar", "name_ar");
        $table->renameColumn("description-ar", "description_ar");
    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::table('products', function (Blueprint $table) {
        $table->renameColumn("name_ar", 'name-ar');
        $table->renameColumn('description_ar', 'description-ar');
    });
 }
}

and the error is:

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 '-ar name_ar VARCHAR(255) NOT NULL' at line 1 (SQL: ALTER TABLE products CHANGE name-ar name_ar VARCHAR(255) NOT NULL)

How can I rename the fields?

Ramūnas Pabrėža :

You have to wrap your column names with dash to quotes, because generated SQL tries to use it like a minus sign

e.g. $table->renameColumn("`name-ar`", "`name_ar`");

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=170659&siteId=1