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.

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...