2017-02-22 4 views
0

базы данных PostgreSQLPG :: InvalidDatetimeFormat: ОШИБКА: неверный входной синтаксис для типа дата: «»

Я следующая миграция:

class AlterBirthdayInUsers < ActiveRecord::Migration[5.0] 
    def change 
    change_column :users, :birthday, 'date USING CAST(birthday AS date)', default: Date.today 
    end 
end 

Миграция началась ошибка:

rake stdout: == 20170201162913 AlterBirthdayInUsers: migrating ======================= 
-- change_column(:users, :birthday, "date USING CAST(birthday AS date)", {:default=>Sat, 18 Feb 2017}) 
rake stderr: rake aborted! 
StandardError: An error has occurred, this and all later migrations canceled: 

PG::InvalidDatetimeFormat: ERROR: invalid input syntax for type date: "" 
: ALTER TABLE "users" ALTER COLUMN "birthday" TYPE date USING CAST(birthday AS date) 

Какая правильная точка для postgrees в поле миграции даты типа?

Заранее благодарим за ваш ответ.

+0

попытка изменения 'ИСПОЛЬЗОВАНИЕ CAST (день рождения А.С. даты)' в 'ИСПОЛЬЗОВАНИЯ CAST (случай, когда день рождения = '', а затем null else день рождения AS дата) ' –

+0

спасибо, уважение –

ответ

3

Это, вероятно, терпит неудачу, пытаясь бросить пустую строку на сегодняшний день, изменения

USING CAST(birthday AS date) 

в

USING CAST(case when birthday = '' then null else birthday end AS date) 
Смежные вопросы