sqlalchemy怎么修改表结构

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlalchemy怎么修改表结构相关的知识,希望对你有一定的参考价值。

参考技术A 得改动schema的逻辑相对复杂,把这项工作独立出来,另行开发了Alembic。此外, SQLAlchemy-Migrate 是另一个已有的比较完善的工具。

解决办法(根据具体场景选择其一):
1. 对于非生产环境的数据库,在确保安全的前提下可以直接“炸库”(即将数据库中所有数据及表结构都删除),通过SQLAlchemy的Base.metadata.create_all()

自动建立表结构。优点是省时;缺点是风险高,只有在内测环境且数本回答被提问者采纳

SQLAlchemy中表结构的一对一

1.先创建两个数据库类,例如创建LOL与DATA2这两个类

LOL表为主表

class LOL(db.Model):
    __tablename__ = "lol"
    id = db.Column(db.Integer, primary_key=True)
    lname = db.Column(db.String(30), nullable=False)
    # 增加关联属性以及反向引用属性
    data = db.relationship("DOTA2", backref = "lol", uselist=False)

    def __repr__(self):
        return "<LOL:%r>" % self.lname

DOTA2位从表,里面含有一个lol_id字段为外键,因此两张表进行了关联

class DOTA2(db.Model):
    __tablename__ = "dota2"
    id = db.Column(db.Integer, primary_key=True)
    dname = db.Column(db.String(30))
    # 增加一个列(外键):表示引用自LOL表的外键
    lol_id = db.Column(db.Integer, db.ForeignKey("lol.id"))

    def __init__(self, dname):
        self.dname = dname

    def __repr__(self):
        return "<DOTA2:%r>" % self.dname

接着往lol表中添加数据

 

以上是关于sqlalchemy怎么修改表结构的主要内容,如果未能解决你的问题,请参考以下文章

PowerBuilder修改数据库表结构的技巧[1]

SQL Server阻止保存修改表结构的解决方法

计算机考试 表一旦建立,表结构就不能修改了?

为啥说数据库表的结构不能随意修改

spring+hibernate集成动态修改表结构,网上要对LocalSessionFactory进行小小的修改

mysql 更改表结构