Pregunta

Estoy tratando de ejecutar una migración de una base de datos existente para cambiar el nombre de la columna en una tabla.Cuando ejecuto la migración, me sale un error que dice que Blob/campos de Texto no puede tener un valor por defecto.La columna en cuestión es una columna de texto, con un no-null atributo, pero no hay ningún valor predeterminado.

La migración que los Rieles de intentos es:

ALTER TABLE xxxxx CAMBIO abcd ABCD texto por DEFECTO " NO es NULO

Ahora, yo no he pedido la migración para cambiar el tipo de columna, sólo he preguntado a cambiar el nombre de la columna, así que ¿por qué es la migración tratando de hacer algo para el tipo de columna?

He buscado en Google el problema, y no he venido para arriba con una explicación o solución.

Cualquier ayuda es apreciada.

Vikram

¿Fue útil?

Solución

Hay que parecen ser un boleto sin resolver desde hace mucho tiempo en este tema, como se describe aquí:

carriles reporte de errores

comportamiento predeterminado

Rails es hacer que las columnas que son NULL, ya que esto evita falsos positivos en los controles de presencia, etc., al traducir las cadenas en blanco de nuevo en Ruby. Hay alguna posibilidad de que pueda trabajar en torno a esta redefiniendo su columna de texto para trabajar con valores NULL en la consola de MySQL?

Editar

Puede hacer esto en su archivo de migración, no es el camino carriles pero es mucho mejor que el envío de un correo electrónico a todos para cambiar sus copias locales:

MyModel.connection.execute "ALTER TABLE xxxxx CHANGE abcd ABCD text DEFAULT NULL"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top