Laravel 5.4 Özel Tablo Geçişi


Yanıtlar:


136

Öncelikle migrationtablonuz için aşağıdaki gibi bir dosya oluşturmalısınız :

public function up()
    {
        Schema::create('test', function (Blueprint $table) {
            $table->increments('id');
            $table->string('fname',255);
            $table->string('lname',255);
            $table->rememberToken();
            $table->timestamps();
        });
    }

Sonra oluşturmak Test klasörü göçler sonra yeni oluşturulan klasörüne göç kopyalanan / taşınan Test klasöründe ve içinde komuta altında işletilen terminali / cmd gibi:

php artisan migrate --path=/database/migrations/test/

1
Teşekkürler. Bu tam olarak aradığım şeydi.
sadık

4
php artisan migrate --path = veritabanı / geçişler / test / benim için çalıştı
Joyal


86

yalnızca bu tabloyu yenilemek ve çalıştırmak için geçiş dosyanızın yolunu eklemelisiniz

php artisan migrate:refresh --path=/database/migrations/fileName.php

1
İyi iş adamı. Hiçbir şey işe yaramadı ama çözüm işe yaradı. Çok teşekkürler.
Vipertecpro

Tam olarak arıyordum :) Teşekkürler dostum
VishalParkash

Bazı kere veritabanı / göçler olacak / filename.php 1 ters eğik çizgi olmadan
Ahmed Aboud

Bir yenileme ile tüm verilerinizin gittiğini belirtmeye değer. Veritabanınızdaki verileri dışa aktarma olarak kaydetmeli ve verilerinizi saklamak istiyorsanız yenilemeden sonra içe aktarmalısınız.
Taranis

@Taranis Sadece yenilediğiniz tablonun verileri hepsini değil
Wissem SASSI

55

migrationsVeritabanınızdaki tabloya bakın, geçiş dosyası adı ve parti numarası değerinin bir listesi olacaktır.

Aşağıdaki yapıya sahip olduğunuzu varsayalım,

id     migration                                           batch

1      2014_10_12_000000_create_users_table                  1 
2      2014_10_12_100000_create_password_resets_table        1
3      2016_09_07_103432_create_tabel_roles                  1

Yalnızca 2016_09_07_103432_create_tabel_rolesgeçişi geri almak istiyorsanız , geçiş toplu iş değerini herkes arasında en yüksek olan 2 olarak değiştirin ve ardından aşağıdakileri çalıştırın.

php artisan migrate:rollback

Burada yalnızca parti değeri 2 olan tablo geri alınacaktır. Şimdi, bu tabloda değişiklikler yapın ve aşağıdaki konsol komutunu çalıştırın.

php artisan migrate

migrationsTablodaki toplu iş değeri , geçişlerin sırasını tanımlar. geri aldığınızda, en son olan veya en yüksek toplu iş değerine sahip geçişler önce geri alınır, sonra diğerleri. Böylece, veritabanındaki değeri değiştirebilir ve ardından belirli bir geçiş dosyasını geri alabilirsiniz.

Tablo yapısı arasındaki ilişki nedeniyle her seferinde parti numarasını değiştirmek iyi bir fikir olmasa da, bu durumu tek tablo geri dönüşün tablolar arasındaki bütünlüğü ihlal etmediği bazı durumlarda kullanabiliriz.

Umarım anlarsın.


@MartneyAcha Sorununuza bir çözüm bulduğunuz için mutluyum Şerefe !!
Sagar Gautam

Güzel açıklama. Masanızda bir yabancı anahtar ilişkiniz varsa, bu işe yaramaz
Ogbonna Vitalis

@OgbonnaVitalis Teşekkürler, bağımsız tablolar için daha kolay bir yol olacak. Kabul edilen yanıt, tek tabloyu geri almak ve taşımak için kesin bir yol sağlar. birden çok bağımsız tablo için çalışacaktır.
Sagar Gautam

15

otomatik tamamlama için sekme kullanırsanız

php artisan migrate --path='./database/migrations/2019_12_31_115457_create_coworking_personal_memberships_table.php'

9

Böyle bir komut çalıştırabilirsiniz

php artisan migrate --path=/database/migrations/2020_04_10_130703_create_test_table.php

8

Dosyaları yeni bir dizine (örn: seçili) yerleştirmeniz ve ardından başvurmanız gerekir

php artisan migrate  --path=/database/migrations/selected

geri alma işlemine ihtiyacınız varsa:

php artisan migrate:rollback  --path=/database/migrations/selected

Not:

php artisan migrate:refresh

bu geri alır ve ardından varsayılan dizindeki (/ veritabanı / migrations) tüm geçiş dosyalarını taşır


Yeni bir dizin oluşturmanıza gerek yok, '--path = / veritabanı / migrations / fileName.php' gibi doğrudan dosya adını koyabilirsiniz.
Wissem SASSI

7
php artisan help migrate

Şu seçeneği göreceksiniz:

--path [= PATH] Yürütülecek taşıma dosyalarının yolu

Bu arada, taşımak istediğiniz dosyanın kök klasörünü muhtemelen belirtebilirsiniz:

php artisan migrate --path=/database/migrations/sample.php

Veya taşıma işlemlerinde yeni bir klasör oluşturabilir, ardından içinde olmasını istediğiniz tüm taşıma dosyalarını taşıyabilirsiniz:

php artisan migrate --path=/database/migrations/new_folder

az önce "s" yi kaçırdınız. "Göç" olmalı! php artisan migrate --path = / veritabanı / migrations / new_folder
Pasindu Jayanath

php artisan migrate --path = / veritabanı / migrations / new_folder / son '/' gerekli
Pasindu Jayanath

5

Bahsetmeye değer olduğunu düşündüğüm başka bir çözüm göndermek istedim.

  1. Taşıma tablosunda taşıma adınızın bulunduğu satırı bulun ve SİLİN. Şu şekilde görünmelidir: 2016_06_01_000001_create_oauth_auth_codes_table
  2. Tablonuzu veritabanından kaldırın, örneğin DROP TABLE oauth_auth_codes
  3. Php artisan migrate'i çalıştırın

Yalnızca ihtiyacınız olan masayı taşır ve başka hiçbir şeye dokunmaz


4

Tek ve belirli bir tablo oluşturmak istiyorsanız. Bu kodu kullanabilirsiniz. Laravel (5.x) sürümleri için çalışır.

php artisan migrate:refresh --path=/database/migrations/fileName.php


3

Tabloyu silin ve kaydını taşıma tablosundan kaldırın.

Bundan sonra, taşımayı tekrar çalıştırırsınız:

php artisan migrate

3

Düzeltme - veri tabanından önceki eğik çizgiyi kaldırın

$ php artisan migrate --path=database/migrations/migration.php

1
Taşınacak bir şey yok.
zod


2

Ya da basitçe veri tabanınızdan "geçişler" tablosundan geçiş dosya adını silebilir ve ardından şunu çalıştırabilirsiniz: php artitsan migration


1

Yürütmek istediğiniz belirli alt klasörü tanımlamak ve oraya belirli geçişleri yerleştirmek için --path = seçeneğini kullanmayı deneyebilirsiniz.

Alternatif olarak, referans ve tabloları DB'den ve geçiş tablolarından kaldırmanız gerekir ki bu ideal değildir: /


1

Başka bir tablo oluşturmak istiyorsanız, yeni bir geçiş dosyası oluşturmanız yeterlidir. Çalışacak.

Eğer adında bir göç oluşturursanız users_tableile id, first_name, last_name. Gibi bir geçiş dosyası oluşturabilirsiniz

    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('first_name',255);
            $table->string('last_name',255);
            $table->rememberToken();
            $table->timestamps();
        });
    }
    public function down()
    {
        Schema::dropIfExists('users');
    }

Geçiş yapmadan "durum" gibi başka bir dosya eklemek istiyorsanız: yenileyin. "Add_status_filed_to_users_table" gibi başka bir taşıma dosyası oluşturabilirsiniz

public function up()
{
    Schema::table('users', function($table) {
        $table->integer('status');
    });
} 

Ve geri alma seçeneğini eklemeyi unutmayın:

public function down()
{
    Schema::table('users', function($table) {
        $table->dropColumn('status');
    });
}

Ve migrate'i çalıştırdığınızda php artitsan migration, sadece yeni migration dosyasını taşır.

Ancak, ilk yönlendirme dosyasına (users_table) dosyalanmış "durum" eklerseniz ve taşımayı çalıştırırsanız. Taşınacak bir şey yok. Koşman gerek php artisan migrate:refresh.

Umarım bu yardımcı olur.



1

php artisan migrate --path = / veritabanı / migrations / fileName.php

Talimatları takip edin, burada bu komut dosyası adını çalıştırın, burada geçiş tablosu adınız olmalıdır Örnek: php artisan migrate --path = / database / migrations / 2020_02_21_101937_create_jobs_table.php


1

Bu komutu sadece terminalinizde çalıştırabilirsiniz

php artisan migrate --path=database/migrations/2020_10_01_164611_create_asset_info_table.php

Taşıma işlemlerinden sonra belirli dosya adını girmelisiniz. veya taşıma içinde herhangi bir klasörünüz varsa, taşımadan sonra bu klasör adını eklemeniz yeterlidir.

Bunun gibi

php artisan migrate --path=database/migrations/yourfolder/2020_10_01_164611_create_asset_info_table.php

Umarım bu sana biraz yardımcı olur. Mutlu Kodlama.



-1

Öncelikle aşağıdaki komutları vermelisiniz:

Aşama 1:

php artisan migrate:rollback

Adım 2:

php artisan migrate

Tablonuz veritabanına geri dönecek.


Her adıma küçük bir açıklama koymanız daha faydalı olacaktır. Bu, kullanıcının gerçekte ne olduğunu anlamasına yardımcı olacaktır. Bu, işlerin sihirli bir şekilde yürümesini sağlayan bir hile koduna benziyor, ancak bazı durumlarda sonuç zararlı olabilir.
Ashwani Agarwal

Lütfen soruyu dikkatlice okuyun, kişi yalnızca bir tablo istedi, yönteminiz tüm geçişleri geri alır ve ardından tüm tabloları oluşturur. Aynı şekilde php artisan migration:refreshhizmet ediyor.
Wajahat Hashmi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.