У меня есть миграция БД так:идентификатор поля без опции автоинкремента в миграции
class CreateParticipations < ActiveRecord::Migration
def self.up
create_table(:participations, :primary_key => 'Seat') do |t|
t.integer :Seat
t.string :Nickname
t.string :Clan
t.string :FirstName
t.string :LastName
t.string :Email
t.boolean :Payed
t.timestamps
end
end
def self.down
drop_table :participations
end
end
Теперь сиденье создаются с помощью автоматического приращения. Однако я этого не хочу. Я хочу его без автоматического увеличения. Я сам определяю себя в своей логике.
Я искал вокруг, но не могу найти, как отключить auto_increment.
Как это сделать? За исключением ручного выполнения этого в MySQL.
Вы действительно уверены, что хотите это сделать? Это противоречит конвенции, которая очень хорошо работает во всех рельсах и приведет к большому количеству дополнительной работы в остальной части вашего приложения, что делает это исключение для правила работой повсюду. Возможно, «Seat» только в поле на этой таблице с уникальным индексом. Если вам это не понадобится, чтобы адаптироваться к устаревшей схеме, это, как правило, плохая идея. К сожалению, я не знаю ответа на ваш вопрос. –
Я знаю, что это оживление мертвых здесь, но относительно тривиальный пример может быть моделью, привязанной к службе non-Rails, которая управляет идентификаторами внутри этой службы. В Rails не было бы необходимости автоматически увеличивать число, потому что было бы разумнее связать представление Rails с идентификатором представления службы non-Rails, а не генерировать еще ДРУГОЙ идентификатор и управлять ДРУГОЙ совокупностью ограничений. Тем не менее, без каких-либо подробностей относительно необходимости в первоначальном обстоятельстве афер, я бы согласился с вами. –