sql >> Base de Datos >  >> RDS >> PostgreSQL

Columna de cambio de migración de Rails para usar matrices de Postgres

PostgreSQL no sabe cómo convertir automáticamente una columna de varchar en una matriz de varchar . No sabe cuál es su intención, porque no tiene forma de saber en qué formato cree que están los valores actuales.

Así que necesitas contarlo; eso es lo que USING la cláusula es para.

ActiveRecord no parece admitir explícitamente USING cláusula (no es sorprendente, ya que apenas admite incluso las características más básicas de la base de datos). Sin embargo, puede especificar su propio texto SQL para la migración.

Asumiendo que sus cadenas están separadas por comas y pueden no contener comas, por ejemplo:

def change
  change_column :table, :dummy_column, "varchar[] USING (string_to_array(dummy_column, ','))"
end

(Yo mismo no uso Rails y no lo he probado, pero es consistente con la sintaxis utilizada en ejemplos en otros lugares).