Yes - unless someone finds a good use for these two functions.
It looks to me that if a record has been removed in a db (e.g. id is not 
continuous: 1, 2, 4, 5 for example), the restore won't work if the table is 
linked to another table. This is I think a sufficiently likely case to 
remove the functions - or am I wrong?

Le jeudi 21 mars 2013 15:42:51 UTC+1, Niphlod a écrit :
>
> so you'd prefer to have it removed alltogether ?
>
> On Thursday, March 21, 2013 3:37:44 PM UTC+1, dederocks wrote:
>>
>> Thanks Ales,
>> Basically, you're confirming the native backup / restore choice. I'm 
>> concerned though that web2py's csv solution is not reliable, and should 
>> therefore be used with high caution -- not to say a word about how slow it 
>> is. It feels sad for me that web2py which other than that an incredible 
>> tool keeps this unpractical feature.
>>
>> Regards, 
>> Andre
>>
>> Le jeudi 21 mars 2013 15:09:23 UTC+1, LightDot a écrit :
>>>
>>> I solved a similar case by writing a function to a) use native postgres 
>>> dump and archive the database and b) present the file to the user for 
>>> download in the administrative back-end. This function is triggered by cron 
>>> in my case, but it could also be executed on demand. For this I would use 
>>> the scheduler and throw in some additional checks so the user doesn't 
>>> trigger the backup too often.
>>>
>>> Hope this helps a bit.
>>>
>>> Regards,
>>> Ales
>>>
>>> On Thursday, March 21, 2013 2:42:51 PM UTC+1, dederocks wrote:
>>>>
>>>> Indeed, or quite close: 
>>>> https://code.google.com/p/web2py/issues/detail?id=1387.
>>>> And to be accurate, I think the issue has more to do with restore than 
>>>> backup.
>>>>
>>>> To build on your comment, there are indeed two ways to deal with backup 
>>>> / restore:
>>>> 1- managed by the database manager using native backup / restore;
>>>> 2- managed by the user, to send the db to another colleague, or restore 
>>>> an older version through the application.
>>>> That's what I'm dealing with right now, and it fails on me. 
>>>>
>>>> Le jeudi 21 mars 2013 13:49:24 UTC+1, LightDot a écrit :
>>>>>
>>>>> Quite right, restoring from, let's say, native mysql dump to 
>>>>> postgresql would most certainly not work. That's exactly why web2py uses 
>>>>> csv as the export format.
>>>>>
>>>>> I don't think exporting / importing to csv is really recommended over 
>>>>> using the native export / import functionality of your database engine or 
>>>>> a 
>>>>> specialized backup software (depending on your needs). But it works and 
>>>>> it 
>>>>> quickly covers the most broad spectrum possible. For anything more 
>>>>> specific 
>>>>> or complex, it's up to the developer to use something else. I don't think 
>>>>> web2py should try to reinvent the wheel here.
>>>>>
>>>>> If export to csv failed in your case, what exactly was the problem? 
>>>>> The referenced thread is from 2011 and seems to be case specific... Are 
>>>>> you 
>>>>> saying you have the same exact error?
>>>>>
>>>>> Regards,
>>>>> Ales
>>>>>
>>>>>
>>>>> On Thursday, March 21, 2013 11:12:57 AM UTC+1, dederocks wrote:
>>>>>>
>>>>>> I'm concerned with the lack of reliability and speed of the 
>>>>>> recommended backup / restore functions: db.export_to_csv_file and 
>>>>>> db.import_from_csv_file.
>>>>>> They failed in my case, and apparently I'm not alone (
>>>>>> https://groups.google.com/forum/?fromgroups=#!newtopic/web2py/web2py/reOzXobYNgE
>>>>>> ).
>>>>>> Would it be wise to replace the backup function with something like:
>>>>>> import os
>>>>>> if 'sqlite' in db._uri:
>>>>>>     os.system(' '.join(('sqlite3',db.path,'.dump >',targetfile)))
>>>>>> elif 'postgres' in db._uri:
>>>>>>     os.system(' '.join(('pg_dump -f',targetfile, dbname)))
>>>>>> elif 'mysql' in db._uri:
>>>>>>     os.system(' '.join(('mysqldump -r',targetfile, dbname)))
>>>>>>
>>>>>> and similarly the restore function would be:
>>>>>> import os
>>>>>> if 'sqlite' in db._uri:
>>>>>>     os.system(' '.join(('sqlite3',db.path,'<',sourcefile)))
>>>>>> elif 'postgres' in db._uri:
>>>>>>     os.system(' '.join(('pg_restore -d',dbname, sourcefile)))
>>>>>> elif 'mysql' in db._uri:
>>>>>>     os.system(' '.join(('mysqlimport',dbname, sourcefile)))
>>>>>>
>>>>>> Unfortunately I'm not knowlegable enough (yet) about all the various 
>>>>>> databases supported nor about platform-dependent intricacies, but would 
>>>>>> this not be a more reliable approach?
>>>>>> The only major downside is that restoring a db from x (say sqlite) 
>>>>>> into y (say postgresql) might not be possible, or require some 
>>>>>> significant 
>>>>>> edit of the dump file. And to make the restore smoother, you'd have to 
>>>>>> figure out the source format -- is this possible?
>>>>>>
>>>>>

-- 

--- 
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/groups/opt_out.


Reply via email to