首页 > 解决方案 > 从 Python 中的模型在 Postgres DB 中创建表/生成模式

问题描述

我正在尝试为以前的项目重新开始工作,并且数据库服务器已被删除。没有数据库备份或 SQL 脚本。但是模式是在 Python 数据库模型中定义的。我可以从中生成数据库模式吗?

我定义了以下类:

class News(db.Model, AutoSerialize, Serializer):
    __tablename__ = 'news'

    news_id = Column(Integer, primary_key=True, server_default=text(
        "nextval('news_news_id_seq'::regclass)"))
    source = Column(String(64))
    source_id = Column(String(64))
    author = Column(String(128))
    title = Column(String(256), nullable=False)
    description = Column(String(65536))
    url = Column(String(512))
    url_to_image = Column(String(512))
    published_at = Column(Date())
    content = Column(String(65536))
    campaign = Column(String(16))
    score = Column(Float(53))
    magnitude = Column(Float(53))
    sentiment = Column(String(16))
    rank_score = Column(Float(53))
    rank_order = Column(Integer)
    translated_content = Column(String(65536))
    detected_language = Column(String(128))
    inserted_at = Column(DateTime(True))


t_tags = Table(
    'tags', metadata,
    Column('tag_id', Integer, nullable=False,
           server_default=text("nextval('tags_tag_id_seq'::regclass)")),
    Column('tag_name', String(128), nullable=False)
)

标签: pythonpostgresqlsqlalchemy

解决方案


获得元数据和连接后,您就可以

metadata.create_all(connection)

(我假设 db.Model 是一个声明性基础)


推荐阅读