Mapper Mapper | User | пользователи не смогли собрать столбцы первичного ключа для сопоставленной таблицы 'users' - PullRequest
1 голос
/ 02 апреля 2019
from sqlalchemy import *
from sqlalchemy import create_engine, ForeignKey
from sqlalchemy import Column, Date, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship, backref

engine = create_engine('sqlite:///database.db', echo=True)
Base = declarative_base()

########################################################################
class User(Base):
    """"""
    __tablename__ = "users"

id = Column(Integer, primary_key=True)
username = Column(String)
password = Column(String)

#----------------------------------------------------------------------
def __init__(self, username, password):
    """"""
    self.username = username
    self.password = password

# create tables
Base.metadata.create_all(engine)

Это должно создать структуру БД с именем файла database.db , но ошибка выскакивает, и как мне ее решить? Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 11 июля 2019

В моем случае я получил эту ошибку, потому что написал ее как

Column('id', Integer)
Column('username', String)

против

id = Column('id', Integer)
username = Column('username', String)
0 голосов
/ 02 апреля 2019

Это была проблема с отступом.Решил это.Решение:

from sqlalchemy import *
from sqlalchemy import create_engine, ForeignKey
from sqlalchemy import Column, Date, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship, backref

engine = create_engine('sqlite:///tutorial.db', echo=True)
Base = declarative_base()

########################################################################
class User(Base):
    """"""
    __tablename__ = "users"

    id = Column(Integer, primary_key=True)
    username = Column(String)
    password = Column(String)

#----------------------------------------------------------------------
def __init__(self, username, password):
    """"""
    self.username = username
    self.password = password

# create tables
Base.metadata.create_all(engine)
...