2017-01-10 3 views
1

ich diese Migration haben in meinen Schienen projizierenentfernen Spalte Standard in Schienen Migration

class ChangeColumnDefaultOfTemp < ActiveRecord::Migration 
    def up 
    change_column_null :states, :temp, false, '' 
    change_column_default :states, :temp, '' 
    end 

    def down 
    change_column_null :states, :temp, true 
    change_column :states, :temp, :string, default: nil 
    end 
end 

Ich bin in der Lage, die nicht NULL-Constraint mit

change_column_null :states, :temp, true 

aber dieser Befehl

change_column :states, :temp, :string, default: nil 
zurückkehren

Gibt mir kein erwartetes Ergebnis

rake db:migrate 

temp | character varying(255) | not null default ''::character varying 

rake db:rollback 


temp | character varying(255) | default NULL::character varying 

-- Expected is 
temp | character varying(255) | 

Hinweis: die Suche nach etwas ähnlichem zu

ALTER [ COLUMN ] column DROP DEFAULT 

ref

Antwort

0

ich denke, dass es ein gemeinsamer Fehler in Rails ist, wenn Sie eine string Typen Spalte haben. Ich würde einfach gehen mit Raw SQL:

class ChangeColumnDefaultOfTemp < ActiveRecord::Migration 
    # ... 
    def down 
    execute <<-SQL 
     ALTER TABLE states ALTER COLUMN temp DROP DEFAULT; 
    SQL 
    end 
end 
Verwandte Themen