Ok thanks. Just one more thing, so if there are around 10 tables in my dump
file which is loaded into the database and I have set migrate = False, as I
dont make any modifications or table alterations in the db.py. How can I
get these tables listed in the db.tables command in the web2py shell. Its
really confusing me. I ran my app with migrate = False, since the table
definitions are all there in dump file. But in the web2py shell it just
shows the auth_tables with the default declerations only.
On Friday, 16 August 2013 19:18:56 UTC+5:30, Niphlod wrote:
>
> that's basically the deal. Either you let web2py manage the database
> (migrate=True), or you do it by hand (migrate=False). There's no need to
> have migrate=True unless you modified your models, and in fact in
> production is recommended to turn migrations off to gain speed. But what
> you see in web2py is always only relative to your code, because web2py
> doesn't engage in any kind of "introspection" of what tables really are in
> your backend.
>
> On Friday, August 16, 2013 3:30:18 PM UTC+2, ajith c t wrote:
>>
>> so does that mean if I add the changes for default auth table
>> definition in my db.py file with respect to the auth table in the dump
>> file, then only it will be reflected in the web2py shell. And once both the
>> definitions matches then there is no need migration also.
>> The change is only in the auth_user table. So I will have to add extra
>> fields to the t_auth_users tables in db.py.
>>
>>
>>
>> On Friday, 16 August 2013 18:40:47 UTC+5:30, Niphlod wrote:
>>>
>>> web2py shell shows you your tables as they are defined in models. What
>>> is there on the database usually matches (when migrate=True or when you're
>>> totally and absolutely sure that your models match the underlying table
>>> definitions).
>>> If you see in web2py shell something different from your underiyng
>>> tables, then the "difference" is to be found in your models, meaning that
>>> your table definitions DON'T match your underlying schema.
>>>
>>> On Friday, August 16, 2013 2:43:22 PM UTC+2, ajith c t wrote:
>>>>
>>>> Ok I tried the first request with fake_migrate = True, then everything
>>>> works fine. The app runs. I open the web2py shell and run the db.tables
>>>> command it list the default auth tables only, with the customized names.
>>>> But these tables contains only the default auth fields in it, but in my
>>>> dump file I have quite a number of fields.
>>>> I then remove the fake_migrate argument and run the app. The same
>>>> result is found. Only the default fields are there with the values.
>>>>
>>>> Isnt the web2py shell supposed to show all the fields in the database.
>>>>
>>>> On Friday, 16 August 2013 17:57:57 UTC+5:30, Niphlod wrote:
>>>>>
>>>>> if your models match the tables you're creating on mysql manually,
>>>>> then what do you need migration for ?
>>>>> set migrate=False ... you did manually what web2py usually does
>>>>> automatically.
>>>>> I'd also use fake_migrate=True for the first request (then remove it)
>>>>> just to update the relevant .table files in the databases/* folder.
>>>>>
>>>>> On Friday, August 16, 2013 2:25:13 PM UTC+2, ajith c t wrote:
>>>>>>
>>>>>> So does that mean I dont have to specify any migrate keyword? I just
>>>>>> have a file with custom auth table definitons and need to use it.
>>>>>>
>>>>>> On Friday, 16 August 2013 17:49:29 UTC+5:30, Niphlod wrote:
>>>>>>>
>>>>>>> if you create your tables you can't enable migrations in web2py,
>>>>>>> 'cause web2py will try to create them.
>>>>>>>
>>>>>>> On Friday, August 16, 2013 2:11:44 PM UTC+2, ajith c t wrote:
>>>>>>>>
>>>>>>>> Hi,
>>>>>>>> I have defined my auth_tables in a mysql file along with
>>>>>>>> some initial row for my app. The name of this file is '*dump.sql*
>>>>>>>> '.
>>>>>>>>
>>>>>>>> I have renamed the tables, for example auth_users is changed to
>>>>>>>> t_auth_users, similarly the other auth_tables too.
>>>>>>>>
>>>>>>>> So when the app is hosted the db is created from this file.
>>>>>>>>
>>>>>>>> In the db.py file before the db.define_tables(), i have renamed the
>>>>>>>> auth_tables, for example:
>>>>>>>>
>>>>>>>> *auth.settings.table_user_name = 't_auth_users' *
>>>>>>>>
>>>>>>>> and similarly others too. My question is how to efficiently handle
>>>>>>>> this migration. I cannot get my auth tables modified according to the
>>>>>>>> defintion in the dump.sql file.
>>>>>>>>
>>>>>>>> Instead the table is created with default fields only. I have
>>>>>>>> around 20 fields for the t_auth_users table in dump.sql but only the 9
>>>>>>>> defaults fields can be seen in webp2y shell db.t_auth_users command.
>>>>>>>>
>>>>>>>> this is the order:
>>>>>>>>
>>>>>>>> 1. First I clear all the files in databases folder for a fresh
>>>>>>>> start.
>>>>>>>> 2. Then load the dump.sql file into the database '*tv*'
>>>>>>>> 3. in db.py
>>>>>>>> *db = DAL('mysql://root:root@localhost/trustvouch',
>>>>>>>> migrate=True)*
>>>>>>>> * *
>>>>>>>> * auth.settings.table_user_name = 't_auth_users'*
>>>>>>>> * *
>>>>>>>> * **auth.define_tables(username=True, migrate=True)*
>>>>>>>> 4. It give me this error,
>>>>>>>> * <class '_mysql_exceptions.OperationalError'> (1050,
>>>>>>>> "Table 'tv_auth_users' already exists")*
>>>>>>>> *
>>>>>>>> *
>>>>>>>> *
>>>>>>>> *
>>>>>>>> Can you help how to get the correct migration of the tables.
>>>>>>>>
>>>>>>>> What I actually need to do is load my table definitions from
>>>>>>>> another mysql dump file , use the tables defined there as my auth
>>>>>>>> tables.
>>>>>>>>
>>>>>>>> *
>>>>>>>> *
>>>>>>>>
>>>>>>>>
--
---
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.