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.
On 1 April 2011 12:06, Madhusudhan H R [email protected] wrote:
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 L. wrote in post #990365:
On 1 April 2011 12:06, Madhusudhan H R [email protected] wrote:
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.
Yes the error message is Cannot add a NOT NULL column with default value
NULL: ALTER TABLE “rates” ADD “customer_id” integer NOT NULL
The migration line which is causing the problem is
add_column :rates, :customer_id, :integer, :null => false
How can I fix this problem?
On 1 April 2011 12:06, Madhusudhan H R [email protected] wrote:
I developed an app with postgres DB but want to change the DB to
sqlite3.
“Cannot add a NOT NULL column with default value NULL: ALTER TABLE
“rates” ADD “customer_id” integer NOT NULL”.
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…
On 1 April 2011 12:53, Madhusudhan H R [email protected] wrote:
“rates” ADD “customer_id” integer NOT NULL".
add_column :rates, :customer_id, :integer, :null => false
How can I fix this problem?
By providing a default value in the migration.
This may be helpful in explaining the issue and suggesting other
alternatives.
Colin