mysql - remove - rollback migration rails
¿Cuándo debería estar usando "NOT NULL" en una tabla de MySQL y hay algún beneficio? (3)
Esto no parece afectar mySQL, pero debe tener en cuenta 2 problemas de migración fijos recientemente (uno cuando no especifica el valor predeterminado)
http://antoniocangiano.com/2008/07/14/a-close-look-at-three-rails-21-bugs/
Tengo la siguiente migración de rieles:
create_table :articles do |t|
t.integer :user_id, :allow_null => false
t.integer :genre_id, :allow_null => false
t.string :url, :limit => 255, :allow_null => false
t.string :title, :limit => 60, :allow_null => false
t.text :summary, :limit => 350, :allow_null => false
t.integer :votes_count, :default => 0
t.datetime :published_at, :default => nil
t.timestamps
end
Todos los campos que son "NO NULOS" se validan primero en el modelo, entonces me pregunto si necesito molestarme en permitir la migración allow_null. No estoy seguro de qué beneficios brinda "NOT NULL" a la base de datos, si corresponde.
NOT NULL es una cosa más en la que la computadora puede vigilarlo y evitar cometer errores.
No mucho si se refiere en términos de rendimiento o eficiencia de almacenamiento. Sin embargo, es una buena práctica insertar tantas restricciones de bajo nivel en la capa de la base de datos. Por un lado, garantiza que un error sutil en Rails no conducirá a algunos datos aleatorios NULL
en un campo no nulo. Del mismo modo, si alguna vez ejecuta otra aplicación contra la misma base de datos, será extremadamente útil tener las restricciones en un lugar central para el mantenimiento y evitar la duplicación.