add_column not working in migration for sqlite3

Hello,

I developed an app with postgres DB but want to change the DB to
sqlite3. I changed the database adapter in the database.yml file. When I
run the migration most of it was successful but add_column was throwing
an error

"Cannot add a NOT NULL column with default value NULL: ALTER TABLE
"rates" ADD "customer_id" integer NOT NULL".

I made the modification and added the columns to the original migration
of the table and ran the migration again. Everything seems to work fine.

Why is add_column causing rake to abort during migration? Is there any
patch for the problem.

Regards,
Madhusudhan.

Hello,

I developed an app with postgres DB but want to change the DB to
sqlite3. I changed the database adapter in the database.yml file. When I
run the migration most of it was successful but add_column was throwing
an error

"Cannot add a NOT NULL column with default value NULL: ALTER TABLE
"rates" ADD "customer_id" integer NOT NULL".

What is the line in your migration file that throws the error? The
error suggests that it says that the column cannot be null, but with a
default value of NULL.

Colin Law wrote in post #990365:

By providing a default value in the migration.

This may be helpful in explaining the issue and suggesting other alternatives.
http://strd6.com/2009/04/adding-a-non-null-column-with-no-default-value-in-a-rails-migration/

Colin

IIRC the same problem cropped up a couple of months back and it was a
'feature' of SQLite - it will create tables with "NOT NULL" fields,
but won't allow alters - even if the table is empty Have a check of
the archives for similar issues...