Hmm... About app/databases/ I don't know exactly all how it works, but I
think your issue come form there... uuid if there is one, would not have
anything to do with your computer, I am pretty sure of that, and you can
leave these files there for sure without any problem...

Though there surely some kind of issue with migrate=False,
fake_migrate=True if it failed to manage archive tables correctly and sync
web2py with the backend schema... This is a corner case, that may not have
been identify yet... You may consider creating a dummy app and try to
reproduce the issue with this app and test it with last version of web2py
to see if issue still there (if any).

test case :

- at least 2 tables with web2py versionning
- versionning should occur in a unique table
- delete app/databases/*
- try fake_migrate see if it fails


If you can reproduce this issue, in you actual web2py version and in a new
version, then open a ticket on github... So we all get aware of this
issue...

Thanks

Richard


On Tue, Feb 23, 2016 at 6:26 PM, Brian M <bmere...@gmail.com> wrote:

> The web2py version is the same on both machines; I just copied my whole
> web2py folder over. Now admittedly my web2py version is slightly out of
> date so it might be something that's been improved recently. I've got a
> patch for another issue that I need to pull and test tonight so I'll try to
> make a test for this too.
>
> The archive table was originally created by web2py.  Yes, I did delete
> .table files from /app/databases but they were the ones from the other
> computer (different uuid hash in file name) and weren't being used anyway
> so that shouldn't make a difference.
>
> On Tuesday, February 23, 2016 at 11:22:06 AM UTC-6, Richard wrote:
>>
>> Pretty weird, but you have made some progress... So, to resume, it like
>> if archive table were never really get created by web2py so it keeps trying
>> to create it and failed since it already exist in the backend...
>>
>> So, there were an issue at the moment you start using the feature, or
>> there is an error in the actual web2py version (did you upgrade web2py as
>> long as migrating you system??, if so consider use the old web2py to see if
>> the issue occuring... This would help determine if the issue is coming form
>> new web2py version or not).
>>
>> Or could it be possible that you create the archive table manually back
>> in time? Or that some file in app/databases/ folder get deleted??
>>
>> Richard
>>
>>
>>
>> On Tue, Feb 23, 2016 at 11:12 AM, Brian M <bmer...@gmail.com> wrote:
>>
>>> Richard,
>>>
>>> Nope, I didn't change the name of the app itself. The only thing that
>>> changed is the name of the computer the DB is on and thus the DAL
>>> connection string.
>>>
>>> The traceback error is :
>>> <class 'pyodbc.ProgrammingError'> ('42S01', "[42S01] [Microsoft][SQL
>>> Server Native Client 11.0][SQL Server]There is already an object named
>>> 'shipment_at_risk_archive' in the database. (2714) (SQLExecDirectW)")
>>>
>>> Interestingly the error doesn't occur on every request even though the
>>> db.shipment_at_risk._enable_record_versioning() is in a plain model file
>>> and would presumably get executed for every page. It only pops up if I'm
>>> trying to get into the database admin screen of App Admin or if I'm on a
>>> page that actually utilizes the archive table.
>>>
>>> Attempting to include an archive_name matching the existing table within
>>> _enable_record_versioning() results in the same error. If I use a new name
>>> for the archive table then it just creates that table and works fine but
>>> this isn't desirable since I want to keep using the data in the
>>> pre-existing archive table. Having _enable_record_versioning() enabled for
>>> only a single table at a time also does no good.
>>>
>>> What I've ended up doing to get past this is using a different
>>> archive_name value and letting the DAL go ahead and create new tables. Then
>>> i just changed the database/ .table file's name to match the original
>>> archive table's name and also edited the contents so that it used the
>>> original table name in things like constraints.  That seems to work and is
>>> essentially doing a manual fake migration.  But I'd still like to hear from
>>> Massimo or another dev whether or not this is intended to behave this way
>>> or if there really should be a fake_migrate argument for
>>> _enable_record_versioning() like there is for regular table definitions.
>>>
>>> Brian
>>>
>>> On Monday, February 22, 2016 at 10:18:31 PM UTC-6, Richard wrote:
>>>>
>>>> Other possible explanation... Did you change app name? Sometimes this
>>>> kind of web2py feature use some part of web2py and app three in the name of
>>>> table created "automagically"...
>>>>
>>>> For instance... I was having issue with session in database feature
>>>> because web2py use application name in the table name of the session in
>>>> database feature, so if I was not specify the name of the table in which I
>>>> want the session file to be store and I rename application (which I do in
>>>> order to test version tag and deploy) I wasn't able to execute tests
>>>> because web2py try to insert records in the wrong table... So I had to
>>>> specify table name like so :
>>>>
>>>> session.connect(request, response, db, masterapp='APP_NAME')
>>>>
>>>> So session goes in web2py_session_APP_NAME session for any clone of the
>>>> master app...
>>>>
>>>> Richard
>>>>
>>>>
>>>> On Mon, Feb 22, 2016 at 11:09 PM, Richard Vézina <ml.richa...@gmail.com
>>>> > wrote:
>>>>
>>>>> Ok, so in this case, my theory is good... Try to leave just one
>>>>> _enable_record_versioning() for one turn... You try access your app with
>>>>> only one table under record versioning to see if it works... Then if this
>>>>> work, I would make sure (explicit) what is the name of the archive table 
>>>>> to
>>>>> see if the issue go away...
>>>>>
>>>>> Richard
>>>>>
>>>>> On Mon, Feb 22, 2016 at 10:46 PM, Brian M <bmer...@gmail.com> wrote:
>>>>>
>>>>>> No, not using single archive table. For each table I want archiving
>>>>>> enabled for, fortunately only a few, I have
>>>>>> db.table_name1._enable_archiving(), db.table_name2._enable_archiving() 
>>>>>> and
>>>>>> my database does that have separate tables for table_name1_archive and
>>>>>> table_name2_archive.  I'm pretty sure that by default if you haven't
>>>>>> explicitly provides some other name for the archive table web2py
>>>>>> automatically uses <main table name>_archive which is exactly what I have
>>>>>> (because _enable_record_versioning() initially created the tables in the
>>>>>> database I restored from)
>>>>>>
>>>>>> On Monday, February 22, 2016 at 9:10:06 PM UTC-6, Richard wrote:
>>>>>>>
>>>>>>> I think it because you use single archive table, could it be??
>>>>>>>
>>>>>>> If I remember there is many differents way to setup record
>>>>>>> versioning feature...
>>>>>>>
>>>>>>> So what may happen in your case, if you have a single history table
>>>>>>> and multiple ._enable_record_versing() for each table to be versioned, 
>>>>>>> is
>>>>>>> that web2py try to recreate the same history table each time he enconter
>>>>>>> the _enable_record_versioning()
>>>>>>>
>>>>>>> Personally I have evaluate the feature over auth_user table only for
>>>>>>> now and make use of it as a per table history table... So, I init the
>>>>>>> feature like so:
>>>>>>>
>>>>>>> db.auth_user._enable_record_versioning(archive_db=db,
>>>>>>>
>>>>>>>  archive_name='auth_user_archive',
>>>>>>>
>>>>>>>  current_record='current_record',
>>>>>>>                                        is_active='is_active')
>>>>>>>
>>>>>>> Where I specified the name of the table to use for archiving
>>>>>>> records...
>>>>>>>
>>>>>>> You may have a look at your history table(s) and try to set the
>>>>>>> previous parameters for each of your instanciation of the
>>>>>>> _enable_record_versioning()
>>>>>>>
>>>>>>> Richard
>>>>>>>
>>>>>>> On Mon, Feb 22, 2016 at 10:01 PM, Brian M <bmer...@gmail.com> wrote:
>>>>>>>
>>>>>>>> Um yeah I suppose I could let the DAL create the tables all itself
>>>>>>>> and therefore also generate all of the expected .table files in the
>>>>>>>> database folder and then go back in afterwards and do the actual DB 
>>>>>>>> restore
>>>>>>>> on top of the new empty database. But it seems like I shouldn't really 
>>>>>>>> have
>>>>>>>> to play tricks like that.
>>>>>>>>
>>>>>>>> The traceback error message is basically can't create
>>>>>>>> table_name_archive an object with that name already exists. Sorry, 
>>>>>>>> don't
>>>>>>>> have access to my work PC right now but that's the gist of it - can't
>>>>>>>> create it is is already there.  It is the same error you'd get with any
>>>>>>>> other table should you forget to turn off migrations/enable 
>>>>>>>> fake_migrate
>>>>>>>> except there seems to be no way to do that for the automatically 
>>>>>>>> generated
>>>>>>>> _archive tables you get with _enable_record_versioning().
>>>>>>>>
>>>>>>>> On Monday, February 22, 2016 at 8:54:29 PM UTC-6, Richard wrote:
>>>>>>>>>
>>>>>>>>> What is the traceback error message?
>>>>>>>>>
>>>>>>>>> On Mon, Feb 22, 2016 at 9:53 PM, Brian M <bmer...@gmail.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> The restore was done with MS SQL Server's built-in backup &
>>>>>>>>>> restore so yes it has all of the tables and info. The dozens of other
>>>>>>>>>> tables in my database worked just fine with migrate=False, it seems  
>>>>>>>>>> to be
>>>>>>>>>> just the few _archive ones that are having issues.
>>>>>>>>>>
>>>>>>>>>> On Monday, February 22, 2016 at 8:39:22 PM UTC-6, Richard wrote:
>>>>>>>>>>>
>>>>>>>>>>> If you restore database like for like, why are you bother with
>>>>>>>>>>> fake_migrate... Just leave everything to migrate=False should be 
>>>>>>>>>>> alright if
>>>>>>>>>>> you dump contains all the tables...
>>>>>>>>>>>
>>>>>>>>>>> Richard
>>>>>>>>>>>
>>>>>>>>>>> On Mon, Feb 22, 2016 at 4:55 PM, Brian M <bmer...@gmail.com>
>>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> I seem to have run into a problem with tables I'm using
>>>>>>>>>>>> _enable_record_versioning() with. I'm setting up on a new computer 
>>>>>>>>>>>> and have
>>>>>>>>>>>> restored a DB backup to the new computer. Now when I try to run 
>>>>>>>>>>>> pages that
>>>>>>>>>>>> utilize those tables the database is complaining that the _archive 
>>>>>>>>>>>> tables
>>>>>>>>>>>> already exist.  I've tried
>>>>>>>>>>>> db.table_name._enable_record_versioning(fake_migrate=True) but that
>>>>>>>>>>>> argument isn't expected. I've tried using fake_migrate_all=True in 
>>>>>>>>>>>> the DAL
>>>>>>>>>>>> connection but that doesn't do it either. So what can I do to get 
>>>>>>>>>>>> web2py to
>>>>>>>>>>>> recognize that the archive table is already there and it doesn't 
>>>>>>>>>>>> need to
>>>>>>>>>>>> try to recreate it.
>>>>>>>>>>>>
>>>>>>>>>>>> Brian
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> 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+un...@googlegroups.com.
>>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>> 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+un...@googlegroups.com.
>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>> 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+un...@googlegroups.com.
>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>> 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+un...@googlegroups.com.
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>>
>>>> --
>>> 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+un...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
> 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.
>

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