Correções para funcionamento da criação do login motorista no qual não permitia email nulo
This commit is contained in:
20
db/migrate/20260616000003_allow_null_email_for_motoristas.rb
Normal file
20
db/migrate/20260616000003_allow_null_email_for_motoristas.rb
Normal file
@@ -0,0 +1,20 @@
|
||||
# Motoristas fazem login por PIN/QR e podem não ter e-mail. A coluna email era
|
||||
# NOT NULL com default "" e índice único — então criar o 2º motorista sem e-mail
|
||||
# colidia em "" (RecordNotUnique → 500 ao salvar pela tela de usuários).
|
||||
#
|
||||
# Solução: permitir NULL e converter os "" existentes em NULL. No Postgres o
|
||||
# índice único trata múltiplos NULL como distintos, então vários motoristas sem
|
||||
# e-mail convivem sem conflito.
|
||||
class AllowNullEmailForMotoristas < ActiveRecord::Migration[7.1]
|
||||
def up
|
||||
change_column_null :users, :email, true
|
||||
change_column_default :users, :email, from: '', to: nil
|
||||
execute "UPDATE users SET email = NULL WHERE email = ''"
|
||||
end
|
||||
|
||||
def down
|
||||
execute "UPDATE users SET email = '' WHERE email IS NULL"
|
||||
change_column_default :users, :email, from: nil, to: ''
|
||||
change_column_null :users, :email, false
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user