Redefinir int id primary key a string


#1

Hola amigos:

Tengo una tabla ActiveRecord con su int id primary key autoincrementado.

En una migration necesito convertir ese int a un string, por supuesto no
autoincrementado pero sí primary key.

No sé cómo hacerlo, con la documentación no me aclaro.
La documentación dice que uno de los tipos posibles de columna es
:primary. Pero si especificas :primary como tipo, cómo voy a especificar
que tiene que ser un string?

He visto que la clase TableDefinition tiene una función primary key,
pero
para usarlo tengo que borrar la tabla entera y redefinirla así, además
de
que no funciona (estoy usando sqlite):

en el migration:

def self.up
drop_table ‘centres’
create_table ‘centres’, :id => false do |t|
t.column ‘name’, :string, :default => “”, :null => false
t.column ‘zone_id’, :int, :null => false
t.column ‘id’, :string, :default => “”, :null => false
t.primary_key( ‘id’ )
end
end

y en la db se queda:

sqlite> .schema centres
CREATE TABLE centres (“name” varchar(255) DEFAULT ‘’ NOT NULL, “zone_id”
int NOT NULL, “id” varchar(255) DEFAULT NULL);

Alguna idea de cómo conseguir que id sea un string y a la vez primary
key??