>
> I also attempted to use the fake_migrate_all=True ,migrate=False but none 
> of the auth files was created. Only my own tables files
> 1. deleted all the databases folder files and set DAL's  
> fake_migrate_all=True ,migrate=False
> 2. Only my tables files (in databases folder), and scheduler files (with 
> the new hex prefix) was created.
>

With migrate=False, fake_migrate and fake_migrate_all will do nothing -- 
the above process would not create the *.table files for *any* of your 
tables. Probably you already had the *.table files for your other tables at 
that point, so it only *appeared* that the Auth files were skipped. If you 
set fake_migrate_all=True, all tables defined during the subsequent request 
(including Auth tables) will have their *.table files created, unless 
migrate or fake_migrate is explicitly set to False for an individual table. 
Note, auth.define_tables() itself takes migrate and fake_migrate arguments 
-- if you have either of those arguments set to False, then the Auth tables 
will not be fake migrated with fake_migrate_all=True.

I suggest you 
read 
http://web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#markmin_table_migrations,
 
as it explains how everything works. In particular, look at the "Migration 
Control Summary" section.
 

> Why the auth tables migration file names  need a hex prefix and  why it is 
> different for each web2py installation ?
> If the hex prefix can be changed and everything is working ? why need it 
> in the first place ?
>

The prefix is simply a default generated by the DAL, and it is a hash of 
the database URI (as noted in the documentation linked above). This allows 
you to have multiple DAL instances linked to different databases without 
worrying about clashes among the *.table file names. Alternatively, you can 
specify your own prefix via the "migrate" argument, which the book actually 
recommends:

db.define_table('mytable', ..., migrate='db1_mytable.table')
 

> Shouldn't  a complete copy of application and database just work out of 
> the box ?
>

It does if you (a) keep the database URI the same or (b) explicitly set the 
*.table file names via each table's "migrate" argument. Otherwise, as noted 
above, the URI hash is needed to allow multiple DAL instances within a 
single app.

Anthony

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

Reply via email to