lost9123193
lost9123193

Reputation: 11030

Rails Change Column to Accept Null and Change Column Type

Is there a way I can perform both of these in 1 migration? I'm using Rails 5 and want to change it from a string to text but also allow nulls. It seems like the following below only allows the null but did not change the column type

def up
  change_column_null :animals, :title, :text, :default => nil
  change_column_null :animals, :description, :text, :default => nil
end

def down
  change_column :animals, :title, :string
  change_column :animals, :description, :string
end  

Upvotes: 0

Views: 340

Answers (1)

anonymus_rex
anonymus_rex

Reputation: 579

By default, string and text data types allows null values, also it's their default value, unless you have previously defined some constraint

Anyway, being explicit, this should work:

def up
  change_column :animals, :title, :text, null: true, default: nil
  change_column :animals, :description, :text, null: true, default: nil
end

def down
  change_column :animals, :title, :string
  change_column :animals, :description, :string
end

Upvotes: 1

Related Questions