반응형
SQLLechemy에서 부호 없는 정수를 정의하는 방법
Flask-SQ를 사용하여 Flask로 포털을 마이그레이션합니다.LAlchemy(MySQL).다음은 기존 포털의 DB를 만드는 데 사용한 코드입니다.
Users = """CREATE TABLE Users(
id INT UNSIGNED AUTO_INCREMENT NOT NULL,
UserName VARCHAR(40) NOT NULL,
FirstName VARCHAR(40) NOT NULL,
LastName VARCHAR(40) NOT NULL,
EmailAddress VARCHAR(255) NOT NULL,
Password VARCHAR(40) NOT NULL,
PRIMARY KEY (id)
) """
SQLALchemy에서 사용하려는 방법은 다음과 같습니다.
class Users(db.Model):
id = db.Column(db.Integer, primary_key=True)
UserName = db.Column(db.String(40))
FirstName = db.Column(db.String(40))
LastName = db.Column(db.String(40))
EmailAddress = db.Column(db.String(255))
Password = db.Column(db.String(40))
제 질문은 SQLAlchemy 모델을 부호 없는 정수로 지정하려면 어떻게 해야 합니까?
SQLLchemy 유형(Integer 등)은 표준 SQL 데이터 유형을 준수하려고 하는 것 같습니다."부호 정수"는 표준 데이터 유형이 아니기 때문에 다음과 같은 것은 볼 수 없습니다.UnsignedInteger
아니면Integer(unsigned=True)
.
이와 같은 경우(MySQL과 같은 데이터베이스에 표준 데이터 유형이 없거나 표준이 아닌 옵션이 있는 경우)에는 방언별 유형을 가져와 이러한 유형/옵션에 액세스할 수 있습니다.MySQL의 경우 모듈을 통해 이러한 유형에 액세스할 수 있습니다.
from sqlalchemy.dialects.mysql import INTEGER
class Users(db.Model):
id = db.Column(INTEGER(unsigned=True), primary_key=True)
UserName = db.Column(db.String(40))
FirstName = db.Column(db.String(40))
LastName = db.Column(db.String(40))
EmailAddress = db.Column(db.String(255))
Password = db.Column(db.String(40))
늦었을 수도 있지만 모델 클래스가 MySQL 및 SqlLite와 같은 여러 데이터베이스 엔진을 관리할 수 있도록 하려면(예: 유닛 테스트 중).할 수 있는 일은 다음과 같습니다.
UnsignedInt = Integer()
UnsignedInt = UnsignedInt.with_variant(INTEGER(unsigned=True), 'mysql')
그리고 선언문 모델은 다음과 같습니다.
class Meta(Base):
__tablename__ = 'meta'
meta_id = Column(UnsignedInt, primary_key=True)
meta_key = Column(String(64), nullable=False, )
meta_value = Column(String(128))
species_id = Column(UnsignedInt)
언급URL : https://stackoverflow.com/questions/19717738/how-to-define-an-unsigned-integer-in-sqlalchemy
반응형
'programing' 카테고리의 다른 글
하나의 SQL 문을 사용하여 MySQL 데이터베이스의 모든 트리거를 삭제하려면 어떻게 해야 합니까? (0) | 2023.10.24 |
---|---|
C-store에서의 조합에 대한 질문 - 하나의 유형으로, 다른 유형으로 읽음 - 구현이 정의되어 있습니까? (0) | 2023.10.24 |
redux와 상태 기계(예: xstate)의 실제 차이는 무엇입니까? (0) | 2023.10.24 |
mysql이 암호가 비어 있는데도 암호를 묻는 중입니다. (0) | 2023.10.24 |
getenv는 표준화되었지만 setenv는 아닌 이유는 무엇입니까? (0) | 2023.10.24 |