Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

279
Visualizações
Postgres migrate uuid column type with default value doesn't work

My migration is

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

The schema is changed with:

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

As you see, we the null: false is not added, not sure why?

But when I try with a common column type for instance string it works well.

Is there any limitation for :uuid column type that we can't use null: false?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Rails 4.2 totally ignore null option for uuid columns with a default value. You may check a column object for your model:

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

But migration options was the same as in your example:

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

Rails 5.0 had fixed this bug. Column object keeps null option for the same migration:

> 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>

And schema.rb also contains null: false:

t.uuid   "uuid", default: -> { "uuid_generate_v4()" }, null: false
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda