guid
adlı bir birincil anahtar sütunu içeren bir tablo oluşturmak için bir geçiş komut dosyası yazıyorum ve bir VARCHAR(25)
. Sorun, bir adımda neyin mümkün olabileceğine ulaşmak için çabalarımı ikiye katlamak zorunda olduğumu hissediyorum.Raylar Geçişi Tablo Oluştur Birincil Anahtar
Koşarsam:
create_table(:global_feeds, :primary_key => 'guid') do |t|
t.string :guid, :limit => 25
t.text :title
t.text :subtitle
...
t.timestamps
end
hiçbir sütun (istediğim budur) id
denilen guid
adında bir birincil anahtarla bir tablo olsun. Ancak, sorun, guid
sütununun otomatik artışla birlikte INT(11)
olmasıdır.
change_column :global_feeds, :guid, :string, :limit => 25
temelde SQL ben birinde mümkün olması gerektiğine inanıyoruz olsun komutları iki çalıştırmak zorunda kıvrık biraz görünüyor: Ben bir ek komutu çalıştırmak zorunda.
Bunu nasıl optimize edeceğinize dair herhangi bir öneriniz var mı?
Maalesef, bu hala benimki gibi iki SQL deyimidir. Sadece operasyon sırasını ters çevirdiniz: İlk önce sütun türünü tanımlayın ve ardından ana anahtarı belirtin. – Ryan
Sanırım bunu tek bir işlemde yapamazsın, ama sanırım yanlış bir şey yok. Göçün biraz daha karmaşık durumlar için iki ifadesi olması mükemmel bir şey. –
Ayrıca ActiveRecord, tamsayı olmayan birincil anahtarlar ile gayet iyi çalışıyor mu emin değilim. –