Rails migration to add boolean column to Postgres on Heroku
Posted
by pmc255
on Stack Overflow
See other posts from Stack Overflow
or by pmc255
Published on 2010-06-06T09:34:16Z
Indexed on
2010/06/06
9:42 UTC
Read the original article
Hit count: 567
I'm trying to execute a simple Rails migration to add a boolean column to an existing table. Here's the add_column call:
add_column :users, :soliciting, :boolean, :null => false, :default => false
However, after the migration runs (successfully, with no errors), I don't see the new column. If I go into the console and list the columns on the User table, for example, with this command:
>> User.columns.each { |c| puts "#{c.name} : #{c.type}" }
All the other columns show up, but not the one I just added with the migration. What's even more strange is that looking up a random user object yields the Postgres version of booleans (Ruby strings)
>> User.find(1).soliciting
=> "t"
However, the existing boolean columns all show up with standard Ruby boolean values of true and false.
What's going on here? Is the migration actually complete? Why doesn't the column show up, yet is accessible in the model objects?
© Stack Overflow or respective owner