Menambahkan kolom baru ke tabel yang ada di migrasi
Saya dapat't tahu bagaimana untuk menambahkan kolom baru untuk saya ada tabel database menggunakan framework Laravel.
Saya mencoba untuk mengedit file migrasi menggunakan...
<?php
public function up()
{
Schema::create('users', function ($table) {
$table->integer("paid");
});
}
Di terminal, saya menjalankan php artisan migrate:install
dan bermigrasi
.
Bagaimana cara menambahkan kolom baru?
226
9
Untuk membuat migrasi, anda dapat menggunakan bermigrasi:membuat perintah pada Tukang CLI. Menggunakan nama tertentu untuk menghindari bentrok dengan model yang ada
untuk Laravel 3:
untuk Laravel 5+:
Anda kemudian perlu untuk menggunakan
Skema::meja()
metode (seperti yang anda're mengakses tabel yang ada, bukan membuat yang baru). Dan anda dapat menambahkan kolom seperti ini:dan don't lupa untuk menambahkan rollback pilihan:
Kemudian anda dapat menjalankan migrasi:
Semua ini tercakup dalam dokumentasi untuk investasi Laravel 3:
Dan untuk Laravel 4 / Laravel 5:
Edit:
gunakan
$tabel->integer('dibayar')->setelah('whichever_column');
untuk menambahkan bidang ini setelah kolom tertentu.I'll menambahkan pada mike3875's jawaban untuk pembaca masa depan menggunakan Laravel 5.1 dan seterusnya.
Untuk membuat hal-hal lebih cepat, anda dapat menggunakan bendera "--meja" seperti ini:
Ini akan menambahkan
naik
danturun
metode konten secara otomatis:Demikian pula, anda dapat menggunakan
--membuat["table_name"]
pilihan ketika membuat migrasi baru yang akan menambah lebih boilerplate untuk migrasi. Titik kecil, tapi berguna ketika melakukan banyak dari mereka!Jika anda're menggunakan Laravel 5, perintah akan;
Semua perintah untuk membuat hal-hal (controller, model, migrasi dll) telah dipindahkan di bawah
membuat
perintah.php artisan migrate
masih sama meskipun.laravel 5.6 dan di atas
jika anda ingin menambahkan kolom baru sebagai FOREIGN KEY untuk tabel yang ada.
Buat yang baru migrasi dengan menjalankan perintah ini : penting:migrasi
Contoh :
Di database/migrasi folder yang telah anda baru migrasi file, sesuatu seperti :
2018_08_08_093431_add_store_id_to_users_table.php (lihat komentar)
Setelah itu jalankan perintah :
Dalam kasus anda ingin membatalkan migrasi terakhir untuk alasan apapun, jalankan perintah ini :
Anda dapat menemukan informasi lebih lanjut tentang migrasi di docs
Anda dapat menambahkan kolom baru dalam awal
Skema::membuat
metode seperti ini:Jika anda telah membuat sebuah tabel, anda dapat menambahkan kolom tambahan untuk meja itu dengan menciptakan yang baru migrasi dan menggunakan
Skema::meja
metode:Dokumentasi yang cukup menyeluruh tentang ini, dan sudah't berubah terlalu banyak dari version 3 versi 4.
anda dapat memodifikasi yang sudah ada file migrasi, misalnya menambahkan kolom dalam tabel, dan kemudian di terminal anda mengetik :
hal-hal ini adalah bekerja pada laravel 5.1.
pertama, pada terminal anda menjalankan kode ini
setelah itu pergi ke direktori proyek anda dan memperluas direktori database - migrasi dan mengedit file add_paid_to_users.php, tambahkan kode ini
setelah itu kembali ke terminal dan jalankan perintah ini
semoga bantuan ini.
Pertama rollback sebelumnya migrasi
Setelah itu, anda dapat memodifikasi yang sudah ada file migrasi (menambah , mengubah nama atau menghapus kolom) kemudian Kembali Menjalankan file migrasi
Meskipun sebuah file migrasi adalah praktek terbaik seperti orang lain telah disebutkan, dalam keadaan darurat anda juga dapat menambahkan kolom dengan bermain-main.
$ php artisan bermain-main
Berikut ini's contoh satu-liner untuk terminal:
php Skema::tabel('pengguna', fungsi(\Illuminate\Database\Skema\Blueprint $tabel){ $tabel->integer('dibayar'); })
(Di sini adalah diformat untuk dibaca)
php Skema::tabel('pengguna', fungsi(\Illuminate\Database\Skema\Blueprint $tabel){ $tabel->integer('dibayar'); });