Recibo el siguiente error al intentar agregar una columna NOT NULL a una tabla existente. ¿Por qué está sucediendo? Intenté rake db: restablecer pensando que los registros existentes son el problema, pero incluso después de restablecer el DB, el problema persiste. ¿Puedes ayudarme a resolver esto?Cómo solucionar "No se puede agregar una columna NOT NULL con valor predeterminado NULL" en SQLite3?
Migración de archivos
class AddDivisionIdToProfile < ActiveRecord::Migration
def self.up
add_column :profiles, :division_id, :integer, :null => false
end
def self.down
remove_column :profiles, :division_id
end
end
mensaje de error
SQLite3 :: excepción de SQL: No se puede agregar una columna NOT NULL con el valor predeterminado NULL: ALTER TABLE "perfiles" ADD " division_id "entero NOT NULL
Su suposición acerca de que ya son filas de la tabla sonidos correctos, y se sería con cualquier otro rdbms. Sin embargo, noté en mi respuesta que SQLite es una excepción a esto. Este error aparece incluso cuando la tabla está vacía, así que publiqué una solución más corta. –
Esto no es correcto: sqlite no tiene forma de cambiar columnas. No sé qué es 'change_column', pero no es sqlite. – Benubird
@Benubird, 'change_column' es un método API en [migraciones de Ruby on Rails] (http://guides.rubyonrails.org/active_record_migrations.html), que es lo que el OP estaba preguntando. –