0
我已經有一個數據庫設置,我想創建從空數據庫到當前狀態的遷移。遷移處理不支持的類型
如何通過Laravel遷移來處理不受支持的類型(如Point)?
唯一我能想到的解決方案是使用DB::statement
並編寫原始SQL。有沒有更好的方法?
此外,是否有任何轉換器從現有的數據庫到Laravel遷移,正確處理這些不受支持的類型?
我已經有一個數據庫設置,我想創建從空數據庫到當前狀態的遷移。遷移處理不支持的類型
如何通過Laravel遷移來處理不受支持的類型(如Point)?
唯一我能想到的解決方案是使用DB::statement
並編寫原始SQL。有沒有更好的方法?
此外,是否有任何轉換器從現有的數據庫到Laravel遷移,正確處理這些不受支持的類型?
有一個包,能爲你做到這一點:https://github.com/shiftonelabs/laravel-nomad/
它有與此簽名的函數:
public function passthru($realType, $column, $definition = null)
{
return $this->addColumn('passthru', $column, compact('realType', 'definition'));
}
,用於像
class CreateUsersTable extends Migration {
public function up()
{
Schema::create('users', function(Blueprint $table)
{
$table->increments('id');
$table->passthru('citext', 'name');
$table->passthru('citext', 'title')->nullable();
$table->passthru('string', 'email', 'varchar(255)')->unique();
$table->passthru('string', 'password')->definition('varchar(60)');
$table->rememberToken();
$table->timestamps();
});
}
public function down()
{
Schema::drop('users');
}
}
它擴展了BaseBlueprint類並使用該功能addColumn
https://laravel.com/api/5.2/Illuminate/Database/Schema/Blueprint.html#method_addColumn
你能解釋一下不支持的類型嗎? –
@SagarGautam請看看可用的列類型:https://laravel.com/docs/5.4/migrations – metalcamp
@metalcamp所以,你有其他類型的列數據 –