I very simple question. Have you tried? Does the script works for you? Because it didn't work for me. Idk what you don't understand that I am doing. Its all the same code. someone can just step through it and figure out that its failing on subprocess.Popen. Idk why its so hard to understand. Specially someone as good as you. And I mean it the good way:-).
On Saturday, April 25, 2015 at 6:40:14 PM UTC-7, Richard wrote: > > I don't know what you are doing... As far as I can see the only thing you > have to do is to is that you call the script with as argument a valid > web2py db connection string... > > a database dump is what is say you dump your db into a file... But I don't > think this script work like that, I thought it could work over a file, but > it seems to work against a web2py live db connection string... > > Richard > > On Sat, Apr 25, 2015 at 2:21 AM, Ron Chatterjee <[email protected] > <javascript:>> wrote: > >> Thanks for all the help Richard. I tried to work around the code >> extract_mysql_models.py (attached is the code). Basically, I installed >> XAMP/WAMP and in the phpmyadmin I have the sql database. I am running this >> code but it fails in line #74: >> >> p = subprocess.Popen(['mysqldump','--user=%s' % username,'--password=%s' >> % password,'--skip-add-drop-table','--no-data', >> database_name,table_name[0]], stdin=subprocess.PIPE, >> stdout=subprocess.PIPE, stderr=subprocess.PIPE) >> >> sql_create_stmnt, stderr = p.communicate() >> >> >> I don't know what a mysql dump is. Wondering if the above two lines can >> be written like, >> >> >> cat_str = 'SELECT *From' + " " + table_name[0] >> >> get_table = cursor.execute(cat_str) >> >> sql_create_stmnt = cursor.fetchall() >> >> >> And then go on with if 'CREATE' in sql_create_stmnt: >> >> >> Anyway, I am attaching the script if it make it makes it any clear. >> >> >> >> >> >> >> >> On Wednesday, April 22, 2015 at 12:44:08 PM UTC-7, Richard wrote: >>> >>> The version in the thread seems not have been included in web2py... >>> >>> Try the one in gluon/scripts/ >>> >>> Richard >>> >>> On Wed, Apr 22, 2015 at 3:41 PM, Richard Vézina <[email protected]> >>> wrote: >>> >>>> This regex : regex = re.compile('(.*?):(.*?)@(.*)') >>>> >>>> Seems to parse the below command line call!! >>>> >>>> Richard >>>> >>>> On Wed, Apr 22, 2015 at 3:39 PM, Richard Vézina <[email protected]> >>>> wrote: >>>> >>>>> >>>>> https://github.com/web2py/web2py/blob/master/scripts/extract_mysql_models.py >>>>> >>>>> Ok, it is not working exactly how I thought it was... Do you have >>>>> myslqldump install? >>>>> >>>>> Do you use Linux or Windows... >>>>> >>>>> what if you do >>>>> >>>>> python extract_mysql_models.py username:password@data_basename >>>>> >>>>> On Wed, Apr 22, 2015 at 3:28 PM, Ron Chatterjee <[email protected]> >>>>> wrote: >>>>> >>>>>> I used this version (the first one) and change to MySQLdb. >>>>>> >>>>>> https://groups.google.com/forum/#!searchin/web2py/extract_mysql_models.py/web2py/XPoTlzPG7lQ/ngSsMbd6zHAJ >>>>>> >>>>>> It gives me an error: >>>>>> >>>>>> Basically, >>>>>> >>>>>> This worked >>>>>> >>>>>> db = MySQLdb.connect(host = 'localhost',user ='root',passwd = '',db = >>>>>> 'name_of_my_database') >>>>>> >>>>>> But this didn't. >>>>>> >>>>>> extract_mysql_models.py --user 'root' --password '' --host >>>>>> '127.0.0.1' --database 'name_of_my_database' --dalname 'wikidb' >>>>>> --colcomments --singlemigrate > mywiki.py >>>>>> >>>>>> Note, my password is empty. >>>>>> >>>>>> The error I get is simply that it can't connect to the server. So, I >>>>>> am going through the code now. >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Wednesday, April 22, 2015 at 2:49:41 PM UTC-4, Richard wrote: >>>>>>> >>>>>>> What do you exactly get out of extract_mysql_models.py applied over >>>>>>> an SQL dump of the schema (only no data inserts)? >>>>>>> >>>>>>> Richard >>>>>>> >>>>>>> On Wed, Apr 22, 2015 at 2:29 PM, Ron Chatterjee < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> Sorry, wasn't clear. Basically want to create a DAL (db.py) file >>>>>>>> from an existing site that I locally hosted (wAMP) which is php front >>>>>>>> end >>>>>>>> mysql backend. I exported out of my WAMP (phpmysqladmin) the tables >>>>>>>> and >>>>>>>> fields in SQL language. Then I tried to make DAL out of it. As you >>>>>>>> explained, thats not possible, Now I will try to take a stab at >>>>>>>> working >>>>>>>> with extract_mysql_models.py but it will probably will require some >>>>>>>> updates. If nothing works, I can use the MYSQL workbench to connect to >>>>>>>> the >>>>>>>> server to draw me the schema and then write the DAL from that. Hope it >>>>>>>> clear things up now. My bad. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Wednesday, April 22, 2015 at 2:04:49 PM UTC-4, Richard wrote: >>>>>>>>> >>>>>>>>> Hello Ron, >>>>>>>>> >>>>>>>>> The more this thread goes the less I understand what you are >>>>>>>>> trying to acheive... Do you want to translate a SQLite DB into a >>>>>>>>> web2py >>>>>>>>> model? or MySQL DB? If you do have a MySQL server instance your >>>>>>>>> connection >>>>>>>>> string seems correct... But then you have to define the table you >>>>>>>>> want to >>>>>>>>> access in this table or you only have DB connection active which give >>>>>>>>> you >>>>>>>>> notting because the DAL don't know the DB structure... >>>>>>>>> >>>>>>>>> Richard >>>>>>>>> >>>>>>>>> On Wed, Apr 22, 2015 at 1:30 PM, Ron Chatterjee < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> This is what I was looking for. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> https://groups.google.com/forum/#!searchin/web2py/extract_mysql_models.py/web2py/XPoTlzPG7lQ/ngSsMbd6zHAJ >>>>>>>>>> >>>>>>>>>> But homehow the code didn't work for me even when I followed the >>>>>>>>>> example like it says. So, I am creating a stand alone version that >>>>>>>>>> works >>>>>>>>>> with MySQLdb. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Tuesday, April 21, 2015 at 4:58:52 PM UTC-4, Ron Chatterjee >>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> I have sqlite browser. I am guessing its the same like SQlite >>>>>>>>>>> Manager where someone can import, export csv or sql file. I don't >>>>>>>>>>> have >>>>>>>>>>> password in that database and work externally to the python >>>>>>>>>>> >>>>>>>>>>> *I guess one possibility will be:* >>>>>>>>>>> >>>>>>>>>>> import MySQLdb >>>>>>>>>>> >>>>>>>>>>> import sys >>>>>>>>>>> >>>>>>>>>>> try: >>>>>>>>>>> >>>>>>>>>>> db = MySQLdb.connect(host = 'localhost',user ='root',passwd = ' >>>>>>>>>>> ',db = 'my_dabasename') >>>>>>>>>>> >>>>>>>>>>> except Exception as e: >>>>>>>>>>> >>>>>>>>>>> sys.exit('we cant get into the db'); >>>>>>>>>>> >>>>>>>>>>> cursor = db.cursor() >>>>>>>>>>> >>>>>>>>>>> cursor.execute('SELECT *FROM table') >>>>>>>>>>> >>>>>>>>>>> results = cursor.fetchall() >>>>>>>>>>> >>>>>>>>>>> print results >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Once the table is fetched then use the insert_into_table option >>>>>>>>>>> to create db object. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> But I agree with Niphlod, import, export csv is probably the >>>>>>>>>>> only way to go around, if it works:-). And also agree with richard. >>>>>>>>>>> sqlbroser does take the storage object as input and can export csv >>>>>>>>>>> table >>>>>>>>>>> and then use that back to create the database. I was just hoping to >>>>>>>>>>> directly connect to my local server (WAMP) where I have the mysql >>>>>>>>>>> database >>>>>>>>>>> defined. I was under the impression, db = DAL('mysql:// >>>>>>>>>>> [email protected]:8000/my_database_name',migrate_enabled=False, >>>>>>>>>>> pool_size=20) is the way to go about it. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Tuesday, April 21, 2015 at 4:07:02 PM UTC-4, Richard wrote: >>>>>>>>>>>> >>>>>>>>>>>> And what would be the utility since you already have INSERT >>>>>>>>>>>> INTO TABLE... Someone can just use something like SQLite Manager ( >>>>>>>>>>>> https://addons.mozilla.org/en-us/firefox/addon/sqlite-manager/) >>>>>>>>>>>> to import it... Once in SQLite DB (which anyway it should) he can >>>>>>>>>>>> use >>>>>>>>>>>> web2py csv export import if he want to migrate from SQLite to >>>>>>>>>>>> Postgres for >>>>>>>>>>>> instance... >>>>>>>>>>>> >>>>>>>>>>>> Richard >>>>>>>>>>>> >>>>>>>>>>>> On Tue, Apr 21, 2015 at 3:55 PM, Niphlod <[email protected]> >>>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Tuesday, April 21, 2015 at 9:39:14 PM UTC+2, Ron Chatterjee >>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> I tried this: >>>>>>>>>>>>>> >>>>>>>>>>>>>> db = >>>>>>>>>>>>>> DAL('mysql://[email protected]:8000/my_database_name',migrate_enabled=False, >>>>>>>>>>>>>> >>>>>>>>>>>>>> pool_size=20) >>>>>>>>>>>>>> >>>>>>>>>>>>>> It didn't work either. I guess someone needs to look at how >>>>>>>>>>>>>> to connect to legacy database. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> where is the password ?! >>>>>>>>>>>>> >>>>>>>>>>>>> BTW: I think there's a bit of misunderstandings going on in >>>>>>>>>>>>> this thread. >>>>>>>>>>>>> There are two separate concept at play: schema (structure) AND >>>>>>>>>>>>> data. >>>>>>>>>>>>> Every script/extract_***_models.py can "inspect" an existing >>>>>>>>>>>>> database and figure out (with limitations) the model you should >>>>>>>>>>>>> write to >>>>>>>>>>>>> access that database --> schema (or structure) translated to >>>>>>>>>>>>> nifty >>>>>>>>>>>>> "db.define_table(....)" >>>>>>>>>>>>> >>>>>>>>>>>>> Exporting and importing a csv (compatible with what web2py >>>>>>>>>>>>> generates) instead - again, with limitations - is the way to >>>>>>>>>>>>> transfer data >>>>>>>>>>>>> around. >>>>>>>>>>>>> >>>>>>>>>>>>> If you have a long list of SQL statements in a file, those are >>>>>>>>>>>>> NOT going to work. >>>>>>>>>>>>> There's virtually nothing that reverse-engineers table >>>>>>>>>>>>> definitions such as "CREATE TABLE ....." to a model file, nor >>>>>>>>>>>>> something >>>>>>>>>>>>> that turns "INSERT INTO TABLE..." to a db.table.insert(), >>>>>>>>>>>>> although it can >>>>>>>>>>>>> be fun to create one (with lots of headaches). >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> 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. >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>> 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. >>>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>> 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. >>>>>>>> >>>>>>> >>>>>>> -- >>>>>> 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. >>>>>> >>>>> >>>>> >>>> >>> -- >> 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] <javascript:>. >> 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 [email protected]. For more options, visit https://groups.google.com/d/optout.

