LARAVEL 6 dodawanie nowej kolumny w istniejącej bazie MySQL

Odpowiedz Nowy wątek
2020-02-14 10:34

Rejestracja: 2 lata temu

Ostatnio: 5 dni temu

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');
    }
}

Pozostało 580 znaków

2020-02-14 10:50

Rejestracja: 3 lata temu

Ostatnio: 35 minut temu

0

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

Pozostało 580 znaków

2020-02-14 10:52

Rejestracja: 2 lata temu

Ostatnio: 5 dni temu

0

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

Pozostało 580 znaków

2020-02-14 10:57
Moderator

Rejestracja: 12 lat temu

Ostatnio: 3 minuty temu

Lokalizacja: Wrocław

2

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


edytowany 2x, ostatnio: Patryk27, 2020-02-14 10:57

Pozostało 580 znaków

2020-02-14 10:59

Rejestracja: 2 lata temu

Ostatnio: 5 dni temu

0

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

edytowany 1x, ostatnio: Łapa_krk, 2020-02-14 10:59
szybciej byś to sprawdził, niż wysłał post ;-p - Patryk27 2020-02-14 11:02

Pozostało 580 znaków

2020-02-14 11:08

Rejestracja: 2 lata temu

Ostatnio: 5 dni temu

0

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

Pozostało 580 znaków

2020-02-14 11:13

Rejestracja: 3 lata temu

Ostatnio: 35 minut temu

0

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.

dziękuje Jurek wytłumaczyłeś jak należy w bazie pojawiła mi sie kolumna price ! :) Przepraszam za takie dopytywanie ale sie uczę teraz dalsze modyfikacje mam nadzieje ze sie nic nie wywali - Łapa_krk 2020-02-14 11:19

Pozostało 580 znaków

Odpowiedz

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