2013-02-18 4 views
0

파이썬 3.3을 사용하여 mysql에서 테이블을 생성하는 데 문제가 있습니다. Pymysql-0.15와 SQLAlchemy를 사용하고 있습니다.mysql에서 pymysql과 sqlalchemy를 사용하여 테이블을 생성하기

현재이 코드는 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을 사용하고 싶습니다. 엔진 = create_engine ("mysql + mysqlconnector : // admin : [email protected]/dbeerste") 빠른 답장을 보내 주셔서 감사합니다 :) – GertV