2013-02-18 39 views
0

我在使用python 3.3在mysql中創建表時遇到問題。 我正在使用Pymysql-0.15和SQLAlchemy。使用pymysql和sqlalchemy在mysql中創建表

當前我在Pythonwin中運行此代碼並具有以下輸出。

from sqlalchemy imort * 

    from sqlalchemy import * 
    import pymysql 
    engine = create_engine("mysql+pymysql://admin:[email protected]/dbeerste") 

    engine = create_engine("mysql+pymysql://admin:[email protected]/dbeerste") 
    metadata = MetaData(bind=engine) 
    users_table = Table('users', metadata, Column('id', Integer, primary_key=True), Column('name', String(40)), Column('age', Integer), Column('password', String),) 
    metadata.create_all(engine) 

Traceback (most recent call last): 
    File "<interactive input>", line 1, in <module> 
    File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\schema.py", line 2740, in create_all 
    tables=tables) 
    File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\engine\base.py", line 1489, in _run_visitor 
    conn._run_visitor(visitorcallable, element, **kwargs) 
    File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\engine\base.py", line 1132, in _run_visitor 
    **kwargs).traverse_single(element) 
    File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\sql\visitors.py", line 109, in traverse_single 
    return meth(obj, **kw) 
    File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\engine\ddl.py", line 56, in visit_metadata 
    collection = [t for t in sql_util.sort_tables(tables) 
    File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\engine\ddl.py", line 57, in <listcomp> 
    if self._can_create_table(t)] 
    File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\engine\ddl.py", line 35, in _can_create_table 
    table.name, schema=table.schema) 
    File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\dialects\mysql\base.py", line 2039, in has_table 
    rs = connection.execute(st) 
File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\engine\base.py", line 664, in execute 
    params) 
    File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\engine\base.py", line 808, in _execute_text 
    statement, parameters 
    File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\engine\base.py", line 878, in _execute_context 
    context) 
    File "C:\Python33\lib\site-packages\sqlalchemy-0.8.0b2-py3.3.egg\sqlalchemy\engine\base.py", line 1036, in _handle_dbapi_exception 
    from e 
sqlalchemy.exc.ProgrammingError: (ProgrammingError) (1146, "#42S02Table 'dbeerste.users' doesn't exist") b'DESCRIBE `users`'() 

請annyone幫我解決這個問題嗎?

回答

0

您的代碼看起來不錯,但MySQL要求您指定密碼字段的長度。修復之後,我能夠對MySQL數據庫執行查詢沒有問題。如果它仍然不適合你,那麼這是數據庫服務器或驅動程序的問題,所以你可以嘗試重新安裝這些東西。

+0

我們也試過,但我們遇到了同樣的錯誤。 問題是我們能夠使用mysqlconector conectionstring插入數據庫,但我們想使用pymysql。 engine = create_engine(「mysql + mysqlconnector:// admin:[email protected]/dbeerste」) 感謝您的快速回復:) – GertV 2013-02-21 09:20:18