Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

277
Vistas
El tipo de columna uuid de migración de Postgres con el valor predeterminado no funciona

mi migración es

 class AddUuidToUsers < ActiveRecord::Migration def change add_column :users, :uuid, :uuid, null: false, default: 'uuid_generate_v4()' add_index :users, :uuid end end

El esquema se cambia con:

 t.uuid "uuid", default: "uuid_generate_v4()"

Como puede ver, tenemos el null: false no se agrega, ¿no está seguro de por qué?

Pero cuando intento con un tipo de columna común, por ejemplo, una string , funciona bien.

¿Existe alguna limitación para el tipo de columna :uuid que no podemos usar null: false ?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Rails 4.2 ignora totalmente la opción null para columnas uuid con un valor predeterminado. Puede marcar un objeto de columna para su modelo:

 > User.columns[2] # number of uuid column => #<ActiveRecord::ConnectionAdapters::PostgreSQLColumn:0x007fe6fee53f20 ... @sql_type="uuid", @null=true, @default=nil, @default_function="uuid_generate_v4()">

Pero las opciones de migración fueron las mismas que en su ejemplo:

 add_column :users, :uuid, :uuid, null: false, default: 'uuid_generate_v4()'

Rails 5.0 solucionó este error. El objeto de columna mantiene la opción null para la misma migración:

 > User.columns[2] => #<ActiveRecord::ConnectionAdapters::PostgreSQLColumn:0x007fa6c3722650 ... @sql_type="uuid", @type=:uuid, @null=false, @default=nil, @default_function="uuid_generate_v4()", @collation=nil, @comment=nil>

Y schema.rb también contiene null: false :

 t.uuid "uuid", default: -> { "uuid_generate_v4()" }, null: false
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda