Hello! I have a web2py application with a sqlite database. The structure of my db.py file is something like this:
db = DAL('sqlite://storage.sqlite', migrate=False) ... db.define_table('table1', Field('field1'), Field('field2')) db.executesql('CREATE INDEX IF NOT EXISTS table1_field1 ON table1 (field1)') db.define_table('table2', Field('field1'), Field('field2')) db.executesql('CREATE INDEX IF NOT EXISTS table2_field1 ON table2 (field1)') ... Each time I want to add a new table or a new field, I remove ", migrate=False", make the change and, after it has been applied I add ", migrate=False" again. This has been working very well so far. Inside my database folder I have this files: storage.sqlite c8b1837fhj47blahblahblah_table1.table c8b1837fhj47blahblahblah_table2.table Well, now my problem. Last time I made an update (I added a new table) in my database, the migration was broken. I don't know why but I guess it was probably because I removed accidentally the .table files and after restore them maybe they were too old. I tried everything and finally the migration worked and the database added the new table. Now my db.py file is something like this: db = DAL('sqlite://storage.sqlite', migrate=False) ... db.define_table('table1', Field('field1'), Field('field2')) db.executesql('CREATE INDEX IF NOT EXISTS table1_field1 ON table1 (field1)') db.define_table('table2', Field('field1'), Field('field2')) db.executesql('CREATE INDEX IF NOT EXISTS table2_field1 ON table2 (field1)') db.define_table('newtable', Field('field1')) db.executesql('CREATE INDEX IF NOT EXISTS newtable_field1 ON newtable (field1)') ... but the first strange thing, in my database folder now I have this: storage.sqlite c8b1837fhj47blahblahblah_table1.table c8b1837fhj47blahblahblah_table2.table newtable.table Why newtable.table doesn't have the c8b1837fhj47blahblahblah part? Is this important? The thing is that I need to add a new field to table1 table and I'm getting errors and I don't know how to solve them. Just removing the ", migrate=False" part I get the error "newtable is already defined" and the application fails. I've tried to use db = DAL('sqlite://storage.sqlite', fake_migrate=True)and have no errors. Then I add my new field but no changes are applied to the database. What am i doing wrong? how could I fix this? Kind regards and thank you very much! -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.