2012-08-22 9 views
10

Me gustaría que las identificaciones de mi modelo de pedido comiencen en 1000, y cuenten de manera autoincremental desde allí.¿Migración de raíles para que la columna de ID comience en 1,000 y aumente automáticamente desde allí?

¿Se puede hacer esto a través de la migración?

+0

conjetura completa pero probaste create_table: whatever_table,: id => 1000 do | t | –

+0

¿Qué base de datos estás usando? p.ej. mysql, postgresql, etc. –

+0

Actualmente, al usar Sqlite3, migrará pronto al postgres. –

Respuesta

21

En su migración, después del cuadro ha sido creado, actualice la secuencia con algo como esto:

create_table :products do |t| 
    t.string :name 
    # other stuff 
end 

# for Postgres 
execute "SELECT setval('products_id_seq', 1000)" 

# and for mysql ... 
execute "ALTER TABLE products AUTO_INCREMENT = 1000" 
+0

¿Cómo asignar la id de la tabla del producto <1000 de esta manera? –

0

Esto no se ha probado y no estoy seguro de qué db estás utilizando.

create_table(:order, :id => false) do |t| 
    t.integer :id, :options => 'PRIMARY KEY', :default => 1000 

o si ya tiene la mesa de tratar esta migración

def change 
    execute "ALTER TABLE orders AUTO_INCREMENT = 1000" 
end 
Cuestiones relacionadas