rails generate migration AddRetweetsCountToTweet retweets_count:integer
Ok saya menggunakan baris di atas untuk membuat file migrasi yang secara otomatis menghasilkan kode di file yang dihasilkan untuk menambahkan kolom ke model Tweet dengan datatype integer. Sekarang saya ingin menambahkan nilai default ke kolom yang ditambahkan saat membuat file migrasi. Apakah itu mungkin? Saya mencarinya di Google tetapi tidak dapat menemukannya. Cowok butuh bantuan.
ruby-on-rails
migration
kxhitiz.dll
sumber
sumber
Jawaban:
Generator migrasi default tidak menangani nilai default ( pengubah kolom didukung tetapi tidak menyertakan
default
ataunull
), tetapi Anda dapat membuat generator sendiri.Anda juga dapat memperbarui file migrasi secara manual sebelum menjalankan
rake db:migrate
dengan menambahkan opsi keadd_column
:add_column :tweet, :retweets_count, :integer, :null => false, :default => 0
... dan baca Rails API
sumber
... harus bekerja.
Lihat panduan Rails tentang migrasi
sumber
Ya, saya juga tidak dapat melihat cara menggunakan 'default' dalam perintah generator migrasi, tetapi saya dapat menentukan nilai default untuk kolom string baru sebagai berikut dengan mengubah file migrasi yang dibuat sebelum menerapkan "rake db: migrate":
Ini menambahkan kolom baru bernama 'color' ke model 'Widget' saya dan menyetel 'warna' default widget baru menjadi 'merah'.
sumber
Saya mencoba t.boolean: aktif,: default => 1 di file migrasi untuk membuat seluruh tabel. Setelah menjalankan migrasi itu ketika saya memeriksa db itu dibuat sebagai null. Meskipun saya mengatakan default sebagai "1". Setelah itu sedikit saya mengubah file migrasi seperti ini kemudian berfungsi untuk saya untuk mengatur nilai default pada membuat file migrasi tabel.
t.boolean: aktif,: null => false,: default => 1. Bekerja untuk saya.
Versi framework Rails saya adalah 4.0.0
sumber
:default => false
?Anda harus terlebih dahulu membuat migrasi Anda untuk dasar-dasar model, lalu Anda membuat migrasi lain untuk memodifikasi sebelumnya menggunakan change_column ...
sumber