Hello,
I'm using Firebird with my web2py powered app.
I've come across what I think to be a bug in migrations, namely dropping
columns migrations.
If I create a table definition, for example, like this:
db.define_table('card',
Field('question', 'text', notnull=True),
Field('answer','text', notnull=True)
)
The table gets created, everything works fine.
But if I remove a Field definition (drop a column), like so:
db.define_table('card',
Field('answer','text', notnull=True)
)
The column gets dropped from the database, but I keep getting this error
message:
<class 'fdb.fbcore.DatabaseError'> ('Error while executing SQL
statement:\n- SQLCODE: -607\n- unsuccessful metadata update\n- column
QUESTION does not exist in table/view CARD', -607, 335544351)
And the sql.log shows that every time I load a page web2py tries to drop
the column that has been deleted thus causing this error.
timestamp: 2013-06-19T23:11:40.214366
ALTER TABLE card DROP question;
timestamp: 2013-06-19T23:11:58.635448
ALTER TABLE card DROP question;
My setup is like this: Mac OS X 10.8.4, Python 2.7.4, web2py 2.5.1,
Firebird 2.5 with the latest fdb driver. But I've come across the same bug
on Windows too.
To reproduce the bug define any table with a couple of columns, get web2py
to create it. Then remove a column definition from from the table
definition.
I've tried fake_migrate but it doesn't solve the problem. Once I remove
fake_migrate the error is back.
--
Alexei Vinidiktov
--
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.