Hi everyone,
Eventually I managed to move on, without cpdb.py.

I had to do it as Massimo suggests in this thread "Best way to migrate from
sqlite to postgresql (or other db)":

https://groups.google.com/forum/#!topic/web2py/mQk2hoRf7gw

Eventhough, auth tables game me a lot of issues and had to tweak the
processs a little. I followed the steps below:

1) Launched my old app from command line:
>>> python web2py.py -S old_sqlite_based_app -M -P
2) Export the db to a single .csv file:
>>> db.export_to_csv_file(open('backup.csv','wb'))
3) Create new empty app with SQLite
4) Create empty db (schema only, no tables) in mysql
5) Change db uri to mysql empty db
6) Launch app from command line to get models built (mainly auth tables):
>>> python web2py.py -S new_empty_app -M -P
7) Stop it and check auth tables were built in mysql correctly
8) Clone my old app code with Mercurial in the new app folder
9) Launch app from command line to get models built (all remaining tables,
except auth which were already built)
10) Stop it and check all remaining tables were built in mysql correctly
11) Launch app from command line and load .csv file data
>>> db.import_from_csv_file(open('backup.csv','rb'))

I do not really know why, but some of the tables did not make it into the
new db.

I'm pretty happy with the result anyway.
Regards, Jon.

PS. When I was doing the process as orginally suggested by Massimo and
Michael Beller (without steps 3,5,6 and 6) I got the error below. Which I
do not understand, but led me to create the empty db to get some fresh auth
tables.
I just wonder if there's some kind of problem in my original tables...

C:\Users\Jon\Downloads\web2py_src\web2py>python web2py.py -S old_app -M -P
web2py Web Framework
Created by Massimo Di Pierro, Copyright 2007-2019
Version 2.17.2-stable+timestamp.2018.10.06.18.54.02
Database drivers available: sqlite3, imaplib, pyodbc, pymysql
Traceback (most recent call last):
  File "C:\Users\Jon\Downloads\web2py_src\web2py\gluon\restricted.py", line
219, in restricted
    exec(ccode, environment)
  File "applications\old_app\models\menu.py", line 19, in <module>
    if auth.has_membership('managers'):
  File "C:\Users\Jon\Downloads\web2py_src\web2py\gluon\authapi.py", line
592, in has_membership
    group_id = self.id_group(group_id)  # interpret group_id as a role
  File "C:\Users\Jon\Downloads\web2py_src\web2py\gluon\authapi.py", line
454, in id_group
    rows = self.db(self.table_group().role == role).select()
  File "C:\Python27\lib\site-packages\pydal\objects.py", line 2250, in
select
    return adapter.select(self.query, fields, attributes)
  File "C:\Python27\lib\site-packages\pydal\adapters\base.py", line 762, in
select
    return self._select_aux(sql, fields, attributes, colnames)
  File "C:\Python27\lib\site-packages\pydal\adapters\base.py", line 718, in
_select_aux
    rows = self._select_aux_execute(sql)
  File "C:\Python27\lib\site-packages\pydal\adapters\base.py", line 712, in
_select_aux_execute
    self.execute(sql)
  File "C:\Python27\lib\site-packages\pydal\adapters\__init__.py", line 67,
in wrap
    return f(*args, **kwargs)
  File "C:\Python27\lib\site-packages\pydal\adapters\base.py", line 412, in
execute
    rv = self.cursor.execute(command, *args[1:], **kwargs)
  File "C:\Python27\lib\site-packages\pymysql\cursors.py", line 170, in
execute
    result = self._query(query)
  File "C:\Python27\lib\site-packages\pymysql\cursors.py", line 328, in
_query
    conn.query(q)
  File "C:\Python27\lib\site-packages\pymysql\connections.py", line 517, in
query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "C:\Python27\lib\site-packages\pymysql\connections.py", line 732, in
_read_query_result
    result.read()
  File "C:\Python27\lib\site-packages\pymysql\connections.py", line 1075,
in read
    first_packet = self.connection._read_packet()
  File "C:\Python27\lib\site-packages\pymysql\connections.py", line 684, in
_read_packet
    packet.check_error()
  File "C:\Python27\lib\site-packages\pymysql\protocol.py", line 220, in
check_error
    err.raise_mysql_exception(self._data)
  File "C:\Python27\lib\site-packages\pymysql\err.py", line 109, in
raise_mysql_exception
    raise errorclass(errno, errval)
ProgrammingError: (1146, u"Table 'test2.auth_group' doesn't exist")

<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
Libre
de virus. www.avast.com
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Tue, Feb 5, 2019 at 10:38 AM Jon Subscripted <jonsubscripti...@gmail.com>
wrote:

> Hi everyone,
> I took a look at cpdb.py code and saw that "-d" option is just used to
> find where "dal.py" and add the folder sys.path.
>
> So, instead of the relative path, I decided to use the absolute path. I do
> not get the "could not set DAL" exception anymore, but now I get the
> following error:
>
> "Field auth_cas.id is already bound to a table"
>
> And the warning regarding the "plural_rules".
> This is the command I executed:
>
> C:\Users\Jon\Downloads\web2py_winAPPLIANCES\web2py>python scripts/cpdb.py
> -f applications/paravolcar10enero_tarde/databases  -y
> sqlite://storage.sqlite -Y sqlite://storage3.sqlite -d
> C:\Users\Jon\Downloads\web2py_winAPPLIANCES\web2py\gluon
> No handlers could be found for logger "web2py"
> WARNING:root:Unable to import plural rules: No module named plural_rules
> creating tables...
> EXCEPTION: could not make a copy of the database
> Field auth_cas.id is already bound to a table
>
> Any suggestions? What does this mean?
> Thanks, Jon.
>
> PS. I'm just using sqlite to sqlite copy for now, for the sake of
> simplicity.
>
> On Mon, Feb 4, 2019 at 10:06 AM Jon Subscripted <
> jonsubscripti...@gmail.com> wrote:
>
>> Hi Dave,
>> Yes, if you refer to the Python installed in the computer I'm using
>> Python 2.7.5.
>>
>> C:\Users\Jon\Downloads\web2py_winAPPLIANCES\web2py>python scripts/cpdb.py
>> -f applications/paravolcar10enero_tarde/databases  -y
>> sqlite://storage.sqlite -Y sqlite://storage3.sqlite -d ../gluon
>> No handlers could be found for logger "web2py"
>> WARNING:root:Unable to import plural rules: No module named plural_rules
>> EXCEPTION: could not set DAL
>> No module named dal
>> creating tables...
>> EXCEPTION: could not make a copy of the database
>> 'NoneType' object is not iterable
>>
>> C:\Users\Jon\Downloads\web2py_winAPPLIANCES\web2py>python.exe
>> Python 2.7.15 (v2.7.15:ca079a3ea3, Apr 30 2018, 16:22:17) [MSC v.1500 32
>> bit (Intel)] on win32
>> Type "help", "copyright", "credits" or "license" for more information.
>> >>>
>>
>> Thanks, Jon.
>>
>> PS. I'm not fully aware of the relationship between the existing Python
>> installation in the computer and the pre-packed Python (delivered as part
>> of Web2py).
>>
>> On Sun, Feb 3, 2019 at 10:21 PM Dave S <snidely....@gmail.com> wrote:
>>
>>>
>>>
>>> On Saturday, February 2, 2019 at 6:05:55 AM UTC-8, Jonsubs wrote:
>>>>
>>>> Hi everyone,
>>>> I'm trying to copy my database (already populated) using cbpd.py but I
>>>> get an error.
>>>> (I'm working in Windows 10 with Web2py
>>>> 2.17.2-stable+timestamp.2018.10.06.18.54.02)
>>>>
>>>>
>>> So you're using the in-box python, which is python2?
>>>
>>> /dps
>>>
>>>
>>>> 1st I changed the database URI in appconfig.ini from
>>>> sqlite://storage.sqlite to sqlite://storage3.sqlite
>>>> 2nd I checked with SQLite Browser that sqlite://storage3.sqlite was
>>>> created and tables are created also (but empty)
>>>> 3rd I launched the command below, but I does not work.
>>>>
>>>> C:\Users\Jon\Downloads\web2py_winAPPLIANCES\web2py>python
>>>> scripts/cpdb.py -f applications/paravolcar10enero_tarde/databases  -y
>>>> sqlite://storage.sqlite -Y sqlite://storage3.sqlite -d ../gluon
>>>> No handlers could be found for logger "web2py"
>>>> WARNING:root:Unable to import plural rules: No module named plural_rules
>>>> EXCEPTION: could not set DAL
>>>> No module named dal
>>>> creating tables...
>>>> EXCEPTION: could not make a copy of the database
>>>> 'NoneType' object is not iterable
>>>>
>>>> Any suggestions? I do not really know how to interpret the error.
>>>> Thanks, Jon.
>>>>
>>> --
>>> 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.
>>>
>>
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
Libre
de virus. www.avast.com
<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

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