Longtext ile Rails 3 Migration


91

Rails komut dosyamda bir sütun türünü metinden uzun metne değiştirmem gerekiyor, ancak bunun nasıl yapılacağına dair hiçbir şey bulamıyorum.

Kimse bununla karşılaştı mı?

Teşekkürler! Dennis


1
(en azından raylar 2 için, sadece türü belirtebilirsiniz: longtext FWIW)
rogerdpack

Yanıtlar:


183

textTipi kolları tinytext, text, mediumtextve longtextMySQL için, bu kullandığınız buysa. Kullanarak üst sınırı belirtin:limit => ...

Misal:

change_column :articles, :body, :text, :limit => 4294967295

Varsayılan değer, limitbeklendiği gibi 65535'tir.

1 to 255 bytes: TINYTEXT
256 to 65535 bytes: TEXT
65536 to 16777215 bytes: MEDIUMTEXT
16777216 to 4294967295 bytes: LONGTEXT

MySQL dokümantasyonu burada bulunabilir .


5
"4294967295" olmalı ve "4294967296" değil (yani, 4.gigabytes - 1) yoksa Mysql2::Error: Display width out of range for column ....yükseltilmiş olmalıdır.
Vikrant Chaudhary

1
Cevabımı bunu yansıtacak şekilde değiştirdim. Çok teşekkürler Vikrant.
Chuck Callebs

4
Mysql 5.1.52'de bir limit kullandım 16.megabytes - 1, ancak yine de uzun metnim var, orta metin değil. Herhangi bir fikrin neden? Teşekkürler.
David M.

1
Benim için de aynı, t.text "bla",: limit => 16777215 belirtilmesine rağmen, ortaya çıkan sütun türü "longtext".
Martin T.

2
@ChuckCallebs: Bu sorunu çözen ve hangi Rails sürümünde gönderilmesi gereken PR'ye bir bağlantı alabilir miyiz?
Damien Wilson
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.