繁体   English   中英

sqlalchemy数据库创建错误

[英]sqlalchemy database creation error

我正在处理一个项目,但遇到一个小错误,该错误使我无法创建所有表和数据库。 我收到以下错误:

vagrant@vagrant-ubuntu-trusty-32:/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)

您是否尝试过将__table__替换为__tablename__

http://docs.sqlalchemy.org/en/latest/orm/extensions/declarative/table_config.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM