LARAVEL 6 dodawanie nowej kolumny w istniejącej bazie MySQL

0

Witam mam utworzoną baze danych w Laravel i teraz chciałbym dodać nową kolumnę w istniejącej już bazie danych jak mam to zrobić z poziomu konsoli?
Próbowałem komędą > **php artisan make:migration add_price_to_products_table --table=products **>
Tworzy się nowa migracja ale baza danych products nie utwarza nowej kolumny price.

**php artisan db:seed ** i php artisan migrate też nic nie daje
Baza na localhost MySQL

mój plik z migrations:


class CreateProductsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('products', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name');
            $table->text('detail');
            $table->text('price');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('products');
    }
}
1

To dziwne, że nie masz błędu jeśli tabela już istnieje. Nie możesz drugi raz stworzyć tej samej tabeli.
Poczytaj w dokumentacji o modyfikacjach.
https://laravel.com/docs/6.x/migrations#column-modifiers

0

w skrócie chce po prostu dodać nową kolumnę do istniejącej już bazy z danymi nie naruszając tych danych

2

Do modyfikacji tabeli powinieneś wykorzystać Schema::table(...), nie Schema::create(...).

0

czyli w public function up() dopisać po prostu Schema::table ?

0

jeszcze jedno pytanko Schema::table wpisuję w nowej wygenerowanej migrations? czy działam na bieżącej ??

1

Tworzysz nową migrację, gdzie w up dodajesz kolumnę a w down ją usuwasz.
Migracje mają odzwierciedlać historię zmian bazy danych. Poza tym wykonana migracja nie wykona się drugi raz.
Popatrz sobie jak zmienia się zawartość tabeli migrations w Twojej bazie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1