En la migración que deseo crear, la clave principal de la tabla es un campo llamado "id" pero no es un entero de incremento automático. Su tipo de datos debe ser uniqueidentifier (uuid). Esto es lo que he intentado:Migraciones de ActiveRecord con clave principal de UUID
create_table :some_things, :id => false do |t|
t.column :id, :uniqueidentifier, :primary => true
t.column :name, :string, :limit => 255
t.column :type, :tinyint
t.column :deleted_flag, :bit
t.column :class_id, :uniqueidentifier
t.timestamps
end
Esto crea la tabla bien, pero no hay ninguna clave primaria (porque dije: id => false). Si dije "create_table: some_things,: id => true,: primary =>: id", entonces "id" se convierte en la clave principal, pero es un entero de incremento automático, no un uuid de incremento no automático.
¿Cómo puedo hacer que esta migración funcione para que la clave principal sea un campo llamado "id" de tipo "uniqueidentifier" (no auto-incrementado)?
que estoy usando: SQL Server 2008, rieles/ActiveRecord 3.0.3, la gema activerecord-sqlserver-adaptador, y una conexión ODBC.
Este es un duplicado de http://stackoverflow.com/questions/1200568/using-rails-how-can-i-set-my-primary-key-to-not-be-an-integer-typed- columna - ¿debemos consolidar las preguntas? –