Ad
Error When Renaming Table Column In Laravel Migration
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?
Ad
Answer
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`");
Ad
source: stackoverflow.com
Related Questions
- → I can't do a foreign key, constraint error
- → How to implement DbDongle::convertTimestamps as workaround of invalid timestamps with MySql strict
- → MySQL error "Foreign key constraint is incorrectly formed"
- → Eloquent Multitable query
- → "Laravel 5.1" add user and project with userId
- → Database backup with custom code in laravel 5 and get the data upto 10 rows from per table in database
- → Laravel 5.1 QueryException when trying to delete a project
- → Using Array in '->where()' for Laravel Query Building
- → Chaining "Count of Columns" of a Method to Single Query Builder
- → Laravel Eloquent Joining Strange query
- → convert time using mysql laravel 5
- → How to update a column after an expiration date in MySQL?
- → Foreign key constraint fails on existing key
Ad