我正在尝试进行迁移,以重命名我的一个表上的列。 每当我尝试重命名该列时,都会出现以下错误。
“表'Table-Name上没有名称为'column_name_id'的列。”
但是,没有列'column_name_id'的原因是它应该像我写的那样对'Column_Name_ID'区分大小写。
我尝试使用strtoupper()
。我还使用反引号来查看是否有帮助。不开心
我不确定这是否与数据库设置有关,但是我之前使用过namedColumn没问题。
public function up()
{
Schema::table('`Table-Name`', function (Blueprint $table) {
$table->renameColumn('Column_Name_ID', 'Column_Name');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('`Table-Name`', function (Blueprint $table) {
$table->renameColumn('Column_Name', 'Column_Name_ID');
});
}
答案 0 :(得分:0)
我最终要做的是因为我不会花太多时间尝试解决此问题,所以使用的是原始语句。
public function up()
{
DB::statement('alter table `Table-Name` change column `Column_Name_ID` `Column_Name` integer(11) null');
}
/**
* Reverse the migrations.
*
* @return void
*/
///
答案 1 :(得分:0)
如issue中所述,对名称使用双引号。
Schema::table('`Table-Name`', function (Blueprint $table) {
$table->renameColumn('"Column_Name_ID"', '"Column_Name"');
});