not updating from migrate

This code runs:

  def self.up
    add_column :film_languages, :short_code, :string

    fl = FilmLanguage.find_by_language("spanish")
    fl.short_code = "es"

    fl = FilmLanguage.find_by_language("english")
    fl.short_code = "en"

but doesn't update short_code:
  e[4;35;1mSQL (0.000191)e[0m e[0mSELECT version FROM
  e[4;36;1mSQL (0.006109)e[0m e[0;1mALTER TABLE `film_languages` ADD
`short_code` varchar(255)e[0m
  e[4;35;1mFilmLanguage Load (0.000338)e[0m e[0mSELECT * FROM
`film_languages` WHERE (`film_languages`.`language` = 'spanish') LIMIT
  e[4;36;1mSQL (0.000054)e[0m e[0;1mBEGINe[0m
  e[4;35;1mSQL (0.000284)e[0m e[0mSELECT `language` FROM
`film_languages` WHERE (`film_languages`.language = 'spanish' AND
`film_languages`.id <> 2) e[0m
  e[4;36;1mFilmLanguage Update (0.000139)e[0m e[0;1mUPDATE
`film_languages` SET `updated_at` = '2008-08-04 09:21:34',
`created_at` = '2008-08-04 09:21:34', `language` = 'spanish' WHERE
`id` = 2e[0m
  e[4;35;1mSQL (0.000081)e[0m e[0mCOMMITe[0m

But if I go into console it works fine. Does the migration not know
about the column or something at the time this is run (before commit

Have you tried FilmLanguage.reset_column_information after you've
added the column ? (check spelling, haven't got access to the docs here)

I am going to try that, thought
seems to imply that it has been fixed... but its not working here!