我在为我的金字塔项目填充表格时遇到了问题

时间:2012-06-06 04:09:48

标签: python postgresql sqlalchemy pyramid

所以我最近从sqlite更改为postgres,以便我可以将我的网站推送到heroku。我遇到的问题是这些表现在正在按顺序构建?

class Data(Base):
    __tablename__ = 'data'
    id = Column(Integer, autoincrement=True, primary_key=True)
    data_type = Column(Integer, primary_key=True, unique=True)
    value = Column(Text, primary_key=True, unique=True)
    range_lower = Column(Integer)
    range_upper = Column(Integer)
    gold = Column(Boolean)

    def __init__(self, data_type, value, range_lower=0, range_upper=0, gold=False):
        self.data_type = data_type
        self.value = value
        self.range_lower = range_lower
        self.range_upper = range_upper
        self.gold = gold




class Page(Base):
    __tablename__ = 'page'
    id = Column(Integer, autoincrement=True, primary_key=True)
    data_type = Column(Integer, ForeignKey('data.data_type'))
    description = Column(Text)
    annotations_per_page = Column(Integer)
    uses_gold = Column(Boolean)

    def __init__(self, data_type, description='default description', annotations_per_page=1, uses_gold=False):
        self.data_type = data_type
        self.description = description
        self.annotations_per_page = annotations_per_page
        self.uses_gold = uses_gold

我遇到的问题是sqlalchemy / pyramid或python setup.py生成的填充脚本在这些类型的项目之一上开发,试图在表Data之前创建表Page。由于Page中的外键依赖于Table,因此失败。我在文档中找不到任何关于这个问题的提及,我们将非常感谢任何见解。

萨姆

1 个答案:

答案 0 :(得分:1)

您需要使用数据库元数据

和这些功能 metadata = MetaData() creat_all()

它按照依赖顺序生成表。

REF:HTTP://docs.sqlalchemy.org/en/rel_0_7/core/schema.html