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.