問題描述
在運行 php artisan migrate 時,出現以下錯誤
While running php artisan migrate, I got the following error
[DoctrineDBALDBALException]
請求的數據庫類型未知,DoctrineDBALPlatformsMySqlPlatform 可能不支持.
[DoctrineDBALDBALException]
Unknown database type enum requested, DoctrineDBALPlatformsMySqlPlatform may not support it.
如何解決這個問題.
代碼:
public function up() {
Schema::table('blogs', function (Blueprint $table) {
$table->string('wordpress_id')->nullable();
$table->string('google_blog_id')->nullable()->change();
});
}
推薦答案
官方 Laravel 5.1 文檔指出:
The official Laravel 5.1 documentation states:
注意:當前不支持使用枚舉列重命名表中的列.
Note: Renaming columns in a table with a enum column is not currently supported.
如果您嘗試更改另一列并不重要,如果表包含 enum
任何地方,它都將不起作用.這是 Doctrine DBAL 問題.
It doesn't matter if you're trying to change another column, if the table contains a enum
anywhere it won't work. It's a Doctrine DBAL issue.
作為一種解決方法,您可以刪除該列并添加一個新列(列數據將丟失):
As a workaround you could either drop the column and add a new one (column data will be lost):
public function up()
{
Schema::table('users', function(Blueprint $table)
{
$table->dropColumn('name');
});
Schema::table('users', function(Blueprint $table)
{
$table->text('username');
});
}
或使用 DB 語句:
public function up()
{
DB::statement('ALTER TABLE projects CHANGE slug url VARCHAR(200)');
}
public function down()
{
DB::statement('ALTER TABLE projects CHANGE url slug VARCHAR(200)');
}
來源:https://github.com/laravel/framework/issues/1186
這篇關于Laravel 5.1 請求的未知數據庫類型枚舉的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!