Piszę teraz migrację, aby utworzyć określone kolumny w tabeli nullable
. W przypadku funkcji w dół oczywiście chcę ponownie utworzyć te kolumny not nullable
. Przejrzałem dokumentację narzędzia do tworzenia schematów , ale nie znalazłem sposobu, aby to zrobić.
Każda pomoc będzie mile widziana.
php
sql
database-migration
laravel
bilalq
źródło
źródło
Odpowiedzi:
Przed Laravel 5 nie było natywnego sposobu modyfikowania istniejącej kolumny tabeli przy użyciu narzędzia do tworzenia schematów w Laravel. W tym celu musisz użyć nieprzetworzonych zapytań.
Jednak od Laravel 5 możesz użyć:
źródło
$table->string('colmn', 255)->nullable()->change();
ale odwrotność nie wydaje się działać ($table->string('colmn', 255)->change();
), więc nadal musisz używać do tego surowych zapytań dbnullable(false)
nie działa dla mnie w Laravel 5.3 :(Począwszy od Laravel 5, można to odwrócić natywnie - po prostu przekaż false jako argument do nullable ().
na przykład
źródło
Najpierw uruchom to:
composer require doctrine/dbal
Następnie utwórz migrację, która zmieni tabelę w następujący sposób:
php artisan make:migration fix_whatever_table_name_here
źródło
Możesz po prostu zadeklarować kolumnę ponownie bez -> nullable () i użyć -> change
źródło