DAL(..., migrate=False) does not completely turn off migrations but merely
sets the default migrate value for each table to False if it is not set
explicitly. The auth.define_tables() method, however, explicitly sets
migrate to True for each Auth table unless otherwise specified, so you
would have to do auth.define_tables(..., migrate=False). Another option is
to completely disable all migrations, regardless of individual table
settings, via:
DAL(..., migrate_enabled=False)
Anthony
On Tuesday, January 15, 2013 7:35:14 AM UTC-5, Paolo valleri wrote:
>
> is on the db definition.
> db = DAL('postgres://web2py:web2py@localhost:5432/traffic',
> migrate=False,
> lazy_tables=True,
> )
>
> Paolo
>
> On Tuesday, January 15, 2013 11:38:49 AM UTC+1, Niphlod wrote:
>>
>> migrate=False is on the db or on Auth define_table() call ?
>>
>>
>>
>> Il giorno martedì 15 gennaio 2013 11:07:49 UTC+1, Paolo valleri ha
>> scritto:
>>>
>>> Hi all, I tried something odd.
>>> I pulled a fresh copy of my code from git and I connected the app to an
>>> already 'working' database. 'working' in the meaning that both tables and
>>> data are already in the database. In web2py this approach fails, because at
>>> the first run it tries to create all the tables, and the db raises an
>>> exception like 'table already exist'.
>>> In order to fix that I thought that migrate=False would help, however it
>>> fails again. due to Auth that tries to create the tables. Ticket:
>>>
>>> Traceback (most recent call last):
>>> File "/home/pvalleri/src/web2py/gluon/restricted.py", line 212, in
>>> restricted
>>> exec ccode in environment
>>> File
>>> "/home/pvalleri/src/web2py/applications/vtraffic/controllers/default.py"
>>> <http://127.0.0.1:8000/admin/default/edit/vtraffic/controllers/default.py>,
>>> line 6, in <module>
>>> start = db.record.with_alias('start_point')
>>> File "/home/pvalleri/src/web2py/gluon/dal.py", line 7221, in __getattr__
>>> return self.lazy_define_table(tablename,*fields,**args)
>>> File "/home/pvalleri/src/web2py/gluon/dal.py", line 7174, in
>>> lazy_define_table
>>> table = table_class(self, tablename, *fields, **args)
>>> File "/home/pvalleri/src/web2py/gluon/dal.py", line 7594, in __init__
>>> field.requires = sqlhtml_validators(field)
>>> File "/home/pvalleri/src/web2py/gluon/dal.py", line 6338, in
>>> sqlhtml_validators
>>> referenced = db[field_type[10:]]
>>> File "/home/pvalleri/src/web2py/gluon/dal.py", line 7215, in __getitem__
>>> return self.__getattr__(str(key))
>>> File "/home/pvalleri/src/web2py/gluon/dal.py", line 7221, in __getattr__
>>> return self.lazy_define_table(tablename,*fields,**args)
>>> File "/home/pvalleri/src/web2py/gluon/dal.py", line 7177, in
>>> lazy_define_table
>>> table._create_references() # must follow above line to handle self
>>> references
>>> File "/home/pvalleri/src/web2py/gluon/dal.py", line 7663, in
>>> _create_references
>>> rtable = db[rtablename]
>>> File "/home/pvalleri/src/web2py/gluon/dal.py", line 7215, in __getitem__
>>> return self.__getattr__(str(key))
>>> File "/home/pvalleri/src/web2py/gluon/dal.py", line 7221, in __getattr__
>>> return self.lazy_define_table(tablename,*fields,**args)
>>> File "/home/pvalleri/src/web2py/gluon/dal.py", line 7189, in
>>> lazy_define_table
>>> polymodel=polymodel)
>>> File "/home/pvalleri/src/web2py/gluon/dal.py", line 935, in create_table
>>> self.create_sequence_and_triggers(query,table)
>>> File "/home/pvalleri/src/web2py/gluon/dal.py", line 2483, in
>>> create_sequence_and_triggers
>>> self.execute(query)
>>> File "/home/pvalleri/src/web2py/gluon/dal.py", line 1709, in execute
>>> return self.log_execute(*a, **b)
>>> File "/home/pvalleri/src/web2py/gluon/dal.py", line 1703, in log_execute
>>> ret = self.cursor.execute(*a, **b)
>>> File "/home/pvalleri/src/web2py/gluon/contrib/pg8000/dbapi.py", line 246,
>>> in _fn
>>> return fn(self, *args, **kwargs)
>>> File "/home/pvalleri/src/web2py/gluon/contrib/pg8000/dbapi.py", line 317,
>>> in execute
>>> self._execute(operation, args)
>>> File "/home/pvalleri/src/web2py/gluon/contrib/pg8000/dbapi.py", line 322,
>>> in _execute
>>> self.cursor.execute(new_query, *new_args)
>>> File "/home/pvalleri/src/web2py/gluon/contrib/pg8000/interface.py", line
>>> 399, in execute
>>> self._stmt.execute(*args, **kwargs)
>>> File "/home/pvalleri/src/web2py/gluon/contrib/pg8000/interface.py", line
>>> 169, in execute
>>> self._row_desc, cmd = self.c.bind(self._portal_name,
>>> self._statement_name, args, self._parse_row_desc, kwargs.get("stream"))
>>> File "/home/pvalleri/src/web2py/gluon/contrib/pg8000/protocol.py", line
>>> 943, in _fn
>>> return fn(self, *args<span style="color: #660;" class="styled-by...
>>> Mostra originale
>>> <https://groups.google.com/group/web2py/msg/64de6b8ababbd2a3?dmode=source&output=gplain&noredirect>
>>>
>>>
--