Hi Web2py users,

we are struggling, for some time now, with a migration of our apps from 
sqlite to postgres. We tried a couple of approaches: first we tried doing 
it with cp_db.py but that had problems with relations and seems broken. Our 
current approach consist of these steps:

1) export data with:
def export_all():
   db.export_to_csv_file(open('export_all.csv', 'w'))

2) change conenction string from sqlite:
db = DAL('sqlite://storage.sqlite', migrate=settings.migrate)
TO:
db = DAL('postgres://user:pass@localhost/project', 
migrate=settings.migrate,check_reserved
=False, entity_quoting=True)

3) remove contents of database/ folder and let web2py create the DB

4) import data from the csv
def import_all():
   db.import_from_csv_file(open('export_all.csv', 'r'))


The import then runs for a very long time and after 10 minutes or so a 
ticket is served:
-----
Ticket ID

127.0.0.1.2014-04-24.13-38-52.6c7d2674-34e2-4968-9526-ee78b83fda76
Versieweb2py™Version 2.9.5-stable+timestamp.2014.03.16.02.35.39PythonPython 
2.7.5: /usr/bin/python (prefix: 
/System/Library/Frameworks/Python.framework/Versions/2.7)Traceback

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.

Traceback (most recent call last):
  File "/Users/acidjunk/GIT/formatics.web2py/gluon/main.py", line 539, in 
wsgibase
    BaseAdapter.close_all_instances('rollback')
  File "/Users/acidjunk/GIT/formatics.web2py/gluon/dal.py", line 600, in 
close_all_instances
    db._adapter.close(action)
  File "/Users/acidjunk/GIT/formatics.web2py/gluon/dal.py", line 580, in close
    getattr(self, action)()
  File "/Users/acidjunk/GIT/formatics.web2py/gluon/dal.py", line 1923, in 
rollback
    return self.connection.rollback()
  File "/Users/acidjunk/GIT/formatics.web2py/gluon/contrib/pg8000/dbapi.py", 
line 455, in _fn
    return fn(self, *args, **kwargs)
  File "/Users/acidjunk/GIT/formatics.web2py/gluon/contrib/pg8000/dbapi.py", 
line 551, in rollback
    self.conn.rollback()
  File 
"/Users/acidjunk/GIT/formatics.web2py/gluon/contrib/pg8000/interface.py", line 
622, in rollback
    self._rollback.execute()
  File 
"/Users/acidjunk/GIT/formatics.web2py/gluon/contrib/pg8000/interface.py", line 
166, in execute
    self.c.close_portal(self._portal_name)
  File "/Users/acidjunk/GIT/formatics.web2py/gluon/contrib/pg8000/protocol.py", 
line 1326, in close_portal
    reader.handle_messages()
  File "/Users/acidjunk/GIT/formatics.web2py/gluon/contrib/pg8000/protocol.py", 
line 906, in handle_messages
    msg = self._conn._read_message()
  File "/Users/acidjunk/GIT/formatics.web2py/gluon/contrib/pg8000/protocol.py", 
line 1033, in _read_message
    bytes = self._read_bytes(5)
  File "/Users/acidjunk/GIT/formatics.web2py/gluon/contrib/pg8000/protocol.py", 
line 1021, in _read_bytes
    self._sock_buf = self._sock.recv(1024)
timeout: timed out

Error snapshot [image: 
help]<http://localhost:9999/admin/default/ticket/leondewit/127.0.0.1.2014-04-24.13-38-52.6c7d2674-34e2-4968-9526-ee78b83fda76#>

<class 'socket.timeout'>(timed out)
-----

Is there a better way to do this kind of migrate, or to have better debug 
info about where it goes wrong?

Any help is appreciated.

Kind Regards

Rene

-- 
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to