我无法执行migration:fresh。
命令无法从以下位置更改表列
:$table->string('language_id')->default('')->length(255);
收件人:
$table->integer('language_id')->unsigned()->default(1)->change();
我收到的错误:
SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法有一个错误;请参见语法。检查手册 对应于您的MariaDB服务器版本,以在'CHARACTER SET utf8mb4 DEFAULT 1 NOT N附近使用正确的语法 第1行的ULL COLLATE
utf8mb4_unicode_ci
'(SQL:ALTER TABLE用户更改language_id language_id INT UNSIGNED CHA RACTER SET utf8mb4默认1 NOT NULL COLLATEutf8mb4_unicode_ci
)
任何帮助/提示都将不胜感激。
答案 0 :(得分:2)
如果标准解决方案不起作用。您可以尝试以下方法:
public function up()
{
DB::statement('ALTER TABLE mytable MODIFY mycolumn INTEGER;');
}
public function down()
{
DB::statement('ALTER TABLE mytable MODIFY mycolumn STRING;');
}
答案 1 :(得分:0)
取决于Laravel文档:
注意:更改列之前,请确保将doctrine / dbal依赖项添加到composer.json文件中。
尝试一下
< font size =1> ' [example] < /font>
答案 2 :(得分:0)
需要学说/ dbal
composer require doctrine/dbal
写一个新的迁移并写这个
public function up()
{
Schema::table('table_name', function (Blueprint $table) {
$table->integer('language_id')->change();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('your_table_name', function (Blueprint $table) {
$table->dropColumn('language_id');
});
}