提交 059820c0 编写于 作者: R Rafael Mendonça França

Merge pull request #21688 from kamipo/add_text_and_blob_shorthand_methods

Add short-hand methods for text and blob types in MySQL
* Add short-hand methods for text and blob types in MySQL.
In Pg and Sqlite3, `:text` and `:binary` have variable unlimited length.
But in MySQL, these have limited length for each types (ref #21591, #21619).
This change adds short-hand methods for each text and blob types.
Example:
create_table :foos do |t|
t.tinyblob :tiny_blob
t.mediumblob :medium_blob
t.longblob :long_blob
t.tinytext :tiny_text
t.mediumtext :medium_text
t.longtext :long_text
end
*Ryuta Kamizono*
* Take into account UTC offset when assigning string representation of * Take into account UTC offset when assigning string representation of
timestamp with offset specified to attribute of time type. timestamp with offset specified to attribute of time type.
......
...@@ -11,6 +11,30 @@ def blob(*args, **options) ...@@ -11,6 +11,30 @@ def blob(*args, **options)
args.each { |name| column(name, :blob, options) } args.each { |name| column(name, :blob, options) }
end end
def tinyblob(*args, **options)
args.each { |name| column(name, :tinyblob, options) }
end
def mediumblob(*args, **options)
args.each { |name| column(name, :mediumblob, options) }
end
def longblob(*args, **options)
args.each { |name| column(name, :longblob, options) }
end
def tinytext(*args, **options)
args.each { |name| column(name, :tinytext, options) }
end
def mediumtext(*args, **options)
args.each { |name| column(name, :mediumtext, options) }
end
def longtext(*args, **options)
args.each { |name| column(name, :longtext, options) }
end
def json(*args, **options) def json(*args, **options)
args.each { |name| column(name, :json, options) } args.each { |name| column(name, :json, options) }
end end
......
...@@ -2,18 +2,18 @@ ...@@ -2,18 +2,18 @@
create_table :binary_fields, force: true do |t| create_table :binary_fields, force: true do |t|
t.binary :var_binary, limit: 255 t.binary :var_binary, limit: 255
t.binary :var_binary_large, limit: 4095 t.binary :var_binary_large, limit: 4095
t.blob :tiny_blob, limit: 255 t.tinyblob :tiny_blob
t.binary :normal_blob, limit: 65535 t.blob :normal_blob
t.binary :medium_blob, limit: 16777215 t.mediumblob :medium_blob
t.binary :long_blob, limit: 2147483647 t.longblob :long_blob
t.text :tiny_text, limit: 255 t.tinytext :tiny_text
t.text :normal_text, limit: 65535 t.text :normal_text
t.text :medium_text, limit: 16777215 t.mediumtext :medium_text
t.text :long_text, limit: 2147483647 t.longtext :long_text
t.index :var_binary
end end
add_index :binary_fields, :var_binary
create_table :key_tests, force: true, :options => 'ENGINE=MyISAM' do |t| create_table :key_tests, force: true, :options => 'ENGINE=MyISAM' do |t|
t.string :awesome t.string :awesome
t.string :pizza t.string :pizza
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册