Я знаю, что могу создать таблицу, а затем добавить индекс в миграцию Rails 2.3.8, например,
class CreateFoos < ActiveRecord::Migration
def self.up
create_table :foos do |t|
t.timestamps
t.string :bar
end
add_index :foos, :bar
end
end
Можно ли создать таблицу и указать ключ в предложении CREATE TABLE? Вышеуказанная миграция генерирует SQL следующим образом:
CREATE TABLE `foos` (
`id` int(11) NOT NULL auto_increment,
`created_at` datetime default NULL,
`updated_at` datetime default NULL,
`bar` varchar(255) default NULL,
PRIMARY KEY (`id`)
);
ALTER TABLE foos ADD INDEX `index_bar` (`bar`);
Но я хочу вот что:
CREATE TABLE `foos` (
`id` int(11) NOT NULL auto_increment,
`created_at` datetime default NULL,
`updated_at` datetime default NULL,
`bar` varchar(255) default NULL,
PRIMARY KEY (`id`),
KEY `index_bar` (`bar`)
)
Я знаю, что это можно сделать с #execute
, но было бы намного приятнее использовать блоки Rails-y. Можно ли это сделать в стандартном Rails 2.3.8? Используете плагин?