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

