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.

Reply via email to