As shown in the example above the field already had a notnull=True constraint so there were no NULLs in the existing rows. But nevertheless it works with a default value, thanks!
It seems that a default value is needed for the migration process by web2py. Is this true?