Как бы установить Laravel 5.3 для использования VARCHAR над NVARCHAR для миграции на mssql? Есть ли способ сделать это?Как бы я переопределить Laravel 5.3 sql grammer
Этот вопрос также относится к SMALLDATETIME по DATETIME.
Как бы установить Laravel 5.3 для использования VARCHAR над NVARCHAR для миграции на mssql? Есть ли способ сделать это?Как бы я переопределить Laravel 5.3 sql grammer
Этот вопрос также относится к SMALLDATETIME по DATETIME.
Я создал пакет, который позволяет выполнять пользовательские миграции без всяких хлопот по расширению всего.
https://github.com/shiftonelabs/laravel-nomad
После установки пакета, вы просто изменить свой переход на использование нового метода passthru
, и вы можете дать ему определение вы хотите для вашей области.
// pass definition as third parameter
$table->passthru('string', 'username', 'varchar(60)');
$table->passthru('datetime', 'expires_at', 'smalldatetime');
// or use fluent definition method
$table->passthru('string', 'username')->definition('varchar(60)');
$table->passthru('datetime', 'expires_at')->definition('smalldatetime');
// if there is no defintion, it defaults to the first parameter
$table->passthru('smalldatetime', 'expires_at');
Это выполнимо, но вы, вероятно, придется создать новый драйвер базы данных самостоятельно, которая включает в создании
DatabaseManager
Connection
ConnectionFactory
Schema Builder
Schema Grammar
...
Значительная часть является то, что вы, вероятно, может продлить срок действия всех этих ребят из Laravel и только изменить класс грамматики:
/**
* Create the column definition for a string type.
*
* @param \Illuminate\Support\Fluent $column
* @return string
*/
protected function typeString(Fluent $column)
{
return 'NVARCHAR ('.$column->length.')';
}
примером этого в этом пакете:
https://github.com/jacquestvanzuydam/laravel-firebird/tree/5.3-support/src/Firebird