9

Integer 列 (Integer(20)、Integer(10) など) の列サイズを定義できることをどこかで見ましたが、何らかの理由で、sqlalchemy が create_all( ):

class Job(Base):
    __tablename__ = "t_job"

    id = Column(Integer(20), Sequence('%s_id_seq' % __tablename__), primary_key=True, nullable=False)
    name = Column(String(30))
    company_id = Column(Integer(20), ForeignKey("t_company.id", ondelete="CASCADE"), nullable=False)

次のクエリを生成します。

CREATE TABLE t_job (
        id INTEGER NOT NULL AUTO_INCREMENT,
        name VARCHAR(30),
        company_id INTEGER NOT NULL,
        PRIMARY KEY (id),
        FOREIGN KEY(company_id) REFERENCES t_company (id) ON DELETE CASCADE
)

それがこれを行う適切な方法ではない場合、それは何ですか?

4

2 に答える 2

7

この機能は、バージョン 0.7 で廃止されました

MySQL を使用している場合は、次のmysql.INTEGERデータ型を使用できます。

from sqlalchemy.dialects import mysql 

class Job(Base):
    __tablename__ = "t_job"

    id = Column(mysql.INTEGER(20), Sequence('%s_id_seq' % __tablename__), primary_key=True, nullable=False)
    name = Column(String(30))
    company_id = Column(Integer(20), ForeignKey("t_company.id", ondelete="CASCADE"), nullable=False)
于 2013-04-04T07:21:50.850 に答える