2016-10-15 83 views
0

我有一个项目,我正在处理,我得到一个小错误,阻止我创建所有表和我的数据库。我收到以下错误:sqlalchemy数据库创建错误

[email protected]:/vagrant/PayUp$ python setup_database.py 
Traceback (most recent call last): 
    File "setup_database.py", line 22, in <module> 
    class Users(Base): 
    File "/usr/lib/python2.7/dist-packages/sqlalchemy/ext/declarative/api.py", line 50, in __init__ 
    _as_declarative(cls, classname, cls.__dict__) 
    File "/usr/lib/python2.7/dist-packages/sqlalchemy/ext/declarative/base.py", line 227, in _as_declarative 
    if not table.c.contains_column(c): 
AttributeError: 'str' object has no attribute 'c' 

和我使用如下代码:

#The following are all of the standard imports that are needed to run the database 
import os 
import sys 
from sqlalchemy import Column, ForeignKey, Integer, String, Index 
from sqlalchemy.ext.declarative import declarative_base 
from sqlalchemy.orm import relationship 
from sqlalchemy import create_engine 

#The following is what will create the declarative_base base that will be imported to every tables 
Base = declarative_base() 

#The following is the user table which will store the users id and username 
class Users(Base): 
    __table__ = 'users' 

    id = Column(Integer, primary_key = True) 
    user_name = Column(String(16), nullable = False, unique = True, index = True) 

class User_Auth(Base): 
    __table__ = 'user_auth' 

    id = Column(Integer, primary_key = True) 
    last_name = Column(String(16), nullable = False) 
    first_name = Column(String(16), nullable = False) 
    password = Column(String(225), nullable = False) 

class User_Info(Base): 

    __table__ = 'user_info' 

    id = Column(Integer, primary_key = True) 
    email = Column(String(50), nullable = False, index = True, unique = True) 
    phone = Column(Integer(12), nullable = True, unique = True) 
    age = Column(Integer(2), nullable = False) 
    gender = Column(String(2), nullable = True) 

class User_Location(Base): 
    __table__ = 'user_location' 

    id = Column(Integer, primary_key = True) 
    street = Column(String(200), mullable = False) 
    city = Column(String(35), nullable = False) 
    state = Column(String(3), nullable = False) 
    zip_code = Column(Integer(5), nullable = False, index = True) 


engine = create_engine('sqlite:///payup.db') 

Base.metadata.create_all(engine) 

回答