mysql – 使用SQLAlchemy创建表后,如何向其中添加其他列?

前端之家收集整理的这篇文章主要介绍了mysql – 使用SQLAlchemy创建表后,如何向其中添加其他列?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

到目前为止这是我的文件

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

engine = create_engine('MysqL://root:ababab@localhost/alctest',echo=False)

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'
    id = Column(Integer,primary_key = True)
    name = Column(String(100))
    fullname = Column(String(100))
    password = Column(String(100))
    addresses = relationship("Address",order_by="Address.id",backref="user")

    def __init__(self,name,fullname,password):
        self.name = name
        self.fullname = fullname
        self.password = password

    def __repr__(self):
        return "Metadata.create_all(engine)

这个文件很简单.它创建一个用户和地址表.运行此文件后,将创建表.

但现在我想在“用户”中添加一列.我怎样才能做到这一点?我需要做什么?

最佳答案
您可以使用Table.append_column方法添加列.

test = Column('test',Integer)
User.__table__.append(test)

但是这不会触发ALTER TABLE命令在数据库添加该列.根据append_column给出的文档,该命令必须在模型中添加该列后手动运行.

猜你在找的MySQL相关文章