【发布时间】:2019-08-24 10:48:37
【问题描述】:
我正在尝试运行迁移以重命名我的一个表上的列。 每当我尝试重命名该列时,都会出现以下错误。
“表'Table-Name'上没有名称为'column_name_id'的列。”
但是,没有列“column_name_id”的原因是它应该像我写的那样区分“Column_Name_ID”的大小写。
我尝试使用strtoupper()。我还使用反引号来查看是否有帮助。没有喜悦。
我不确定这是否是我的数据库设置的问题,但我之前使用过 renameColumn 没有问题。
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');
});
}
【问题讨论】:
-
你的操作系统是什么?请检查此链接stackoverflow.com/questions/2009005/…,因为它表明 unix 对字段名称具有区分大小写的命名,但窗口并不关心这一点。这可能是您的问题吗?
-
我知道 windows 不在乎,但它从来没有为我把它变成小写。本地是 windows,但我推送到 unix 服务器
-
试试双引号 "Table-Name"
-
不,那没用。
-
在 config/database.php 添加这一行到 mysql 驱动器
'options' => [PDO:: CASE_NATURAL =>true],
标签: php mysql laravel migration