0

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?

1
  • try this $table->renameColumn("`name-ar`", "`name_ar`"); Commented Mar 10, 2020 at 13:50

1 Answer 1

1

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`");

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.