Ho bisogno di cambiare con il tipo di colonna di migrazione $table->string('text');
in un tipo di testo, ho provato a farlo in alcuni modi, ma nessuno di essi ha funzionato. È possibile farlo in un'unica migrazione. Potrei indovinare rilasciare la colonna e quindi crearla di nuovo con un nuovo tipo, ma mi chiedo se è possibile farlo in un'unica migrazione?Le migrazioni di Laravel cambiano un tipo di colonna da varchar a long.
10
A
risposta
12
Sì, è possibile creare nuova migrazione e change just one column type:
public function up()
{
Schema::table('sometable', function (Blueprint $table) {
$table->text('text')->change();
});
}
4
Secondo Laravel Doc
Si può fare come
Schema::table('yourTable', function (Blueprint $table) {
$table->text('text')->change();
});
assicurarsi di aggiungere la dottrina/dbal dipendenza dal tuo file composer.json
1
È possibile eseguire una migrazione TABLE.
Come menzionato in altri post, assicurati di eseguire composer install doctrine/dbal
dalla radice del progetto.
Questi sono istituiti con:
php artisan make:migration alter_table_[yourtablenamehere]_change_[somecolumnname] --table=[yourtablenamehere]
dalla radice del progetto.
dalla documentazione:
https://laravel.com/docs/master/migrations#modifying-columns
class AlterTableSomething extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('table', function (Blueprint $table) {
$table->text('column_name')->change();
});
}
}
avete ancora bisogno di abbandonare il campo? perché sto ancora ricevendo "Colonna esiste già: 1060 Nome colonna duplicato" quando si utilizza il codice per cambiare una colonna. – NewbieLearner