Exemplo n.º 1
0
 def define_tables(self, metadata):
     Table('table1', metadata,
           Column('id', Integer, primary_key=True),
           Column('data', String(30)))
     Table('table2', metadata,
           Column('id', Integer, primary_key=True),
           Column('someid', None, ForeignKey('table1.id')))
Exemplo n.º 2
0
    def define_tables(self, metadata):
        Table("extra", metadata,
            Column("id", Integer, Sequence("extra_id_seq", optional=True),
                   primary_key=True),
            Column("prefs_id", Integer, ForeignKey("prefs.id")))

        Table('prefs', metadata,
            Column('id', Integer, Sequence('prefs_id_seq', optional=True),
                   primary_key=True),
            Column('data', String(40)))

        Table('users', metadata,
            Column('id', Integer, Sequence('user_id_seq', optional=True),
                   primary_key=True),
            Column('name', String(40)),
            Column('pref_id', Integer, ForeignKey('prefs.id')))
Exemplo n.º 3
0
    def define_tables(self, metadata):
        Table('base', metadata, Column('uid', String(30), primary_key=True),
              Column('x', String(30)))

        Table(
            'derived', metadata,
            Column('uid', String(30), ForeignKey('base.uid'),
                   primary_key=True), Column('y', String(30)))

        Table(
            'derivedII', metadata,
            Column('uid', String(30), ForeignKey('base.uid'),
                   primary_key=True), Column('z', String(30)))

        Table('comments', metadata, Column('id', Integer, primary_key=True),
              Column('uid', String(30), ForeignKey('base.uid')),
              Column('comment', String(30)))
Exemplo n.º 4
0
 def define_tables(self, metadata):
     Table(
         'node', metadata,
         Column('id',
                Integer,
                primary_key=True,
                test_needs_autoincrement=True),
         Column('path', String(50), nullable=False),
         Column('parent_id', Integer, ForeignKey('node.id'), nullable=True),
         Column('prev_sibling_id',
                Integer,
                ForeignKey('node.id'),
                nullable=True),
         Column('next_sibling_id',
                Integer,
                ForeignKey('node.id'),
                nullable=True))
Exemplo n.º 5
0
    def define_tables(self, metadata):
        Table('datas', metadata,
              Column('id', Integer, primary_key=True, nullable=False),
              Column('a', Integer, nullable=False))

        Table(
            'foo', metadata,
            Column('data_id',
                   Integer,
                   ForeignKey('datas.id'),
                   nullable=False,
                   primary_key=True), Column('bar', Integer))

        Table('stats', metadata,
              Column('id', Integer, primary_key=True, nullable=False),
              Column('data_id', Integer, ForeignKey('datas.id')),
              Column('somedata', Integer, nullable=False))
Exemplo n.º 6
0
 def define_tables(self, metadata):
     Table(
         'item', metadata, Column('id', Integer, primary_key=True),
         Column('uuid', String(32), unique=True, nullable=False),
         Column('parent_uuid',
                String(32),
                ForeignKey('item.uuid'),
                nullable=True))
Exemplo n.º 7
0
    def define_tables(self, metadata):
        Table('users', metadata, Column('id', Integer, primary_key=True),
              Column('name', String(40)), Column('fullname', String(100)),
              Column('password', String(15)))

        Table('addresses', metadata, Column('id', Integer, primary_key=True),
              Column('email_address', String(100), nullable=False),
              Column('user_id', Integer, ForeignKey('users.id')))
Exemplo n.º 8
0
 class Person(Base, ComparableEntity):
     __tablename__ = 'people'
     id = Column('id', Integer, primary_key=True)
     company_id = Column('company_id', Integer,
                         ForeignKey('companies.id'))
     name = Column('name', String(50))
     discriminator = Column('type', String(50))
     __mapper_args__ = {'polymorphic_on':discriminator}
Exemplo n.º 9
0
 def define_tables(self, metadata):
     Table('users', metadata,
         Column('id', Integer, primary_key=True),
         Column('name', String(30)),
         Column('type', String(30)))
     Table('email_users', metadata,
         Column('id', Integer, ForeignKey('users.id'), primary_key=True),
         Column('email_address', String(30)))
Exemplo n.º 10
0
 def define_tables(self, metadata):
     Table(
         't1', metadata,
         Column('c1',
                Integer,
                primary_key=True,
                test_needs_autoincrement=True),
         Column('parent_c1', Integer, ForeignKey('t1.c1')),
         Column('data', String(20)))
     Table(
         't2', metadata,
         Column('c1',
                Integer,
                primary_key=True,
                test_needs_autoincrement=True),
         Column('c1id', Integer, ForeignKey('t1.c1')),
         Column('data', String(20)))
Exemplo n.º 11
0
    def define_tables(self, metadata):
        Table(
            't1', metadata,
            Column('c1',
                   Integer,
                   primary_key=True,
                   test_needs_autoincrement=True),
            Column('c2', Integer, ForeignKey('t2.c1')))

        Table(
            't2', metadata,
            Column('c1',
                   Integer,
                   primary_key=True,
                   test_needs_autoincrement=True),
            Column('c2', Integer,
                   ForeignKey('t1.c1', use_alter=True, name='t1c1_fk')))
Exemplo n.º 12
0
 def define_tables(self, metadata):
     Table('table_a', metadata,
           Column('id', Integer, primary_key=True),
           Column('name', String(30)))
     Table('table_b', metadata,
           Column('id', Integer, primary_key=True),
           Column('name', String(30)),
           Column('a_id', Integer, ForeignKey('table_a.id')))
Exemplo n.º 13
0
        class Address(Base):
            __tablename__ = 'addresses'

            id = Column('id', Integer, primary_key=True)
            email = Column('email', String(50))
            user_id = Column('user_id', Integer, ForeignKey('users.id'))
            user = relation("User", primaryjoin=user_id == User.id,
                            backref="addresses")
Exemplo n.º 14
0
    def test_with_inheritance(self):
        metadata = MetaData(testing.db)

        table1 = Table("mytable", metadata,
                       Column('col1', Integer, primary_key=True),
                       Column('col2', String(30)))

        table2 = Table(
            "mytable2",
            metadata,
            Column('col1',
                   Integer,
                   ForeignKey('mytable.col1'),
                   primary_key=True),
            Column('col3', String(30)),
        )

        @profile_memory
        def go():
            class A(_base.ComparableEntity):
                pass

            class B(A):
                pass

            mapper(A,
                   table1,
                   polymorphic_on=table1.c.col2,
                   polymorphic_identity='a')
            mapper(B, table2, inherits=A, polymorphic_identity='b')

            sess = create_session()
            a1 = A()
            a2 = A()
            b1 = B(col3='b1')
            b2 = B(col3='b2')
            for x in [a1, a2, b1, b2]:
                sess.add(x)
            sess.flush()
            sess.clear()

            alist = sess.query(A).order_by(A.col1).all()
            self.assertEquals([A(), A(), B(col3='b1'), B(col3='b2')], alist)

            for a in alist:
                sess.delete(a)
            sess.flush()

            # dont need to clear_mappers()
            del B
            del A

        metadata.create_all()
        try:
            go()
        finally:
            metadata.drop_all()
        assert_no_mappers()
Exemplo n.º 15
0
    def test_session(self):
        metadata = MetaData(testing.db)

        table1 = Table("mytable", metadata,
                       Column('col1', Integer, primary_key=True),
                       Column('col2', String(30)))

        table2 = Table("mytable2", metadata,
                       Column('col1', Integer, primary_key=True),
                       Column('col2', String(30)),
                       Column('col3', Integer, ForeignKey("mytable.col1")))

        metadata.create_all()

        m1 = mapper(A,
                    table1,
                    properties={
                        "bs":
                        relation(B,
                                 cascade="all, delete",
                                 order_by=table2.c.col1)
                    },
                    order_by=table1.c.col1)
        m2 = mapper(B, table2)

        m3 = mapper(A, table1, non_primary=True)

        @profile_memory
        def go():
            sess = create_session()
            a1 = A(col2="a1")
            a2 = A(col2="a2")
            a3 = A(col2="a3")
            a1.bs.append(B(col2="b1"))
            a1.bs.append(B(col2="b2"))
            a3.bs.append(B(col2="b3"))
            for x in [a1, a2, a3]:
                sess.add(x)
            sess.flush()
            sess.clear()

            alist = sess.query(A).all()
            self.assertEquals([
                A(col2="a1", bs=[B(col2="b1"), B(col2="b2")]),
                A(col2="a2", bs=[]),
                A(col2="a3", bs=[B(col2="b3")])
            ], alist)

            for a in alist:
                sess.delete(a)
            sess.flush()

        go()

        metadata.drop_all()
        del m1, m2, m3
        assert_no_mappers()
Exemplo n.º 16
0
    def define_tables(self, metadata):
        Table(
            'companies', metadata,
            Column('company_id',
                   Integer,
                   primary_key=True,
                   test_needs_autoincrement=True),
            Column('company_name', String(40)))

        Table(
            'addresses', metadata,
            Column('address_id',
                   Integer,
                   primary_key=True,
                   test_needs_autoincrement=True),
            Column('company_id', Integer, ForeignKey("companies.company_id")),
            Column('address', String(40)))

        Table(
            'phone_numbers', metadata,
            Column('phone_id',
                   Integer,
                   primary_key=True,
                   test_needs_autoincrement=True),
            Column('address_id', Integer, ForeignKey('addresses.address_id')),
            Column('type', String(20)), Column('number', String(10)))

        Table(
            'invoices', metadata,
            Column('invoice_id',
                   Integer,
                   primary_key=True,
                   test_needs_autoincrement=True),
            Column('company_id', Integer, ForeignKey("companies.company_id")),
            Column('date', sa.DateTime))

        Table(
            'items', metadata,
            Column('item_id',
                   Integer,
                   primary_key=True,
                   test_needs_autoincrement=True),
            Column('invoice_id', Integer, ForeignKey('invoices.invoice_id')),
            Column('code', String(20)), Column('qty', Integer))
Exemplo n.º 17
0
    def define_tables(self, metadata):
        Table('users_table', metadata, Column('id', Integer, primary_key=True),
              Column('name', String(64)))

        Table('addresses_table', metadata,
              Column('id', Integer, primary_key=True),
              Column('user_id', Integer, ForeignKey('users_table.id')),
              Column('email_address', String(128)),
              Column('purpose', String(16)),
              Column('bounces', Integer, default=0))
Exemplo n.º 18
0
    def test_autoincrement_fk(self):
        nodes = Table('nodes', self.metadata,
                      Column('id', Integer, primary_key=True),
                      Column('parent_id', Integer, ForeignKey('nodes.id')),
                      Column('data', String(30)))
        nodes.create()

        r = nodes.insert().execute(data='foo')
        id_ = r.last_inserted_ids()[0]
        nodes.insert().execute(data='bar', parent_id=id_)
Exemplo n.º 19
0
    def define_tables(self, metadata):
        Table('addresses', metadata,
            Column('address_id', Integer, primary_key=True),
            Column('street', String(30)),
        )

        Table('homes', metadata,
            Column('home_id', Integer, primary_key=True, key="id"),
            Column('description', String(30)),
            Column('address_id', Integer, ForeignKey('addresses.address_id'),
                   nullable=False),
        )

        Table('businesses', metadata,
            Column('business_id', Integer, primary_key=True, key="id"),
            Column('description', String(30), key="description"),
            Column('address_id', Integer, ForeignKey('addresses.address_id'),
                   nullable=False),
        )
Exemplo n.º 20
0
    def define_tables(self, meta):
        Table('orders', meta,
            Column('id', Integer, Sequence('order_id_seq'),
                   primary_key=True),
            Column('name', String(50)))

        Table('items', meta,
            Column('id', Integer, Sequence('item_id_seq'),
                   primary_key=True),
            Column('order_id', Integer, ForeignKey('orders.id'),
                   nullable=False),
            Column('name', String(50)))

        Table('attributes', meta,
            Column('id', Integer, Sequence('attribute_id_seq'),
                   primary_key=True),
            Column('item_id', Integer, ForeignKey('items.id'),
                   nullable=False),
            Column('name', String(50)))
Exemplo n.º 21
0
    def define_tables(self, metadata):
        Table('design_types', metadata,
              Column('design_type_id', Integer, primary_key=True))

        Table(
            'design', metadata, Column('design_id', Integer, primary_key=True),
            Column('design_type_id', Integer,
                   ForeignKey('design_types.design_type_id')))

        Table(
            'parts', metadata, Column('part_id', Integer, primary_key=True),
            Column('design_id', Integer, ForeignKey('design.design_id')),
            Column('design_type_id', Integer,
                   ForeignKey('design_types.design_type_id')))

        Table('inherited_part', metadata,
              Column('ip_id', Integer, primary_key=True),
              Column('part_id', Integer, ForeignKey('parts.part_id')),
              Column('design_id', Integer, ForeignKey('design.design_id')))
Exemplo n.º 22
0
    def define_tables(self, metadata):
        Table('users', metadata, Column('id', Integer, primary_key=True),
              Column('username', String(50), unique=True),
              Column('fullname', String(100)))

        Table(
            'addresses', metadata, Column('id', Integer, primary_key=True),
            Column('email', String(50)),
            Column('username', String(50),
                   ForeignKey('users.username', onupdate="cascade")))
Exemplo n.º 23
0
 class Address(Base, ComparableEntity):
     __tablename__ = 'addresses'
     id = Column(Integer, primary_key=True)
     email = Column(String(50))
     user_id = Column(Integer, ForeignKey('users.id'))
     if inline:
         if stringbased:
             user = relation("User", primaryjoin="User.id==Address.user_id", backref="addresses")
         else:
             user = relation(User, primaryjoin=User.id==user_id, backref="addresses")
Exemplo n.º 24
0
 def define_tables(self, meta):
     Table('sales_reps', meta,
         Column('sales_rep_id', Integer,
                Sequence('sales_rep_id_seq'),
                primary_key=True),
         Column('name', String(50)))
     Table('accounts', meta,
         Column('account_id', Integer,
                Sequence('account_id_seq'),
                primary_key=True),
         Column('balance', Integer))
     Table('customers', meta,
         Column('customer_id', Integer,
                Sequence('customer_id_seq'),
                primary_key=True),
         Column('name', String(50)),
         Column('sales_rep_id', Integer,
                ForeignKey('sales_reps.sales_rep_id')),
         Column('account_id', Integer,
                ForeignKey('accounts.account_id')))
Exemplo n.º 25
0
    def define_tables(self, metadata):
        Table(
            'ball', metadata,
            Column('id',
                   Integer,
                   primary_key=True,
                   test_needs_autoincrement=True),
            Column(
                'person_id', Integer,
                ForeignKey('person.id', use_alter=True, name='fk_person_id')),
            Column('data', String(30)))

        Table(
            'person', metadata,
            Column('id',
                   Integer,
                   primary_key=True,
                   test_needs_autoincrement=True),
            Column('favorite_ball_id', Integer, ForeignKey('ball.id')),
            Column('data', String(30)))
Exemplo n.º 26
0
    def define_tables(self, metadata):
        Table('departments', metadata,
              Column('department_id', Integer, primary_key=True),
              Column('name', String(50)))

        Table(
            'employees', metadata,
            Column('person_id', Integer, primary_key=True),
            Column('name', String(50)),
            Column('department_id', Integer,
                   ForeignKey('departments.department_id')))
Exemplo n.º 27
0
    def define_tables(self, metadata):
        Table('jack', metadata,
              Column('id', Integer, primary_key=True),
              Column('number', String(50)),
              Column('status', String(20)),
              Column('subroom', String(5)))

        Table('port', metadata,
              Column('id', Integer, primary_key=True),
              Column('name', String(30)),
              Column('description', String(100)),
              Column('jack_id', Integer, ForeignKey("jack.id")))
Exemplo n.º 28
0
 def define_tables(self, metadata):
     global users, addresses
     users = Table('users', metadata, Column('id',
                                             Integer,
                                             primary_key=True),
                   Column('name', String(50)))
     addresses = Table(
         'addresses',
         metadata,
         Column('id', Integer, primary_key=True),
         Column('email', String(50)),
         Column('user_id', Integer, ForeignKey('users.id')),
     )
Exemplo n.º 29
0
    def define_tables(self, metadata):
        Table('users', metadata,
            Column('user_id', Integer,
                   Sequence('user_id_seq', optional=True),
                   primary_key=True),
            Column('name', String(40)))

        Table('addresses', metadata,
            Column('address_id', Integer,
                   Sequence('address_id_seq', optional=True),
                   primary_key=True),
            Column('user_id', Integer, ForeignKey('users.user_id')),
            Column('email_address', String(40)))
Exemplo n.º 30
0
    def define_tables(self, metadata):
        Table(
            'place', metadata,
            Column('place_id',
                   Integer,
                   sa.Sequence('pid_seq', optional=True),
                   primary_key=True), Column('name',
                                             String(30),
                                             nullable=False))

        Table(
            'transition', metadata,
            Column('transition_id',
                   Integer,
                   sa.Sequence('tid_seq', optional=True),
                   primary_key=True), Column('name',
                                             String(30),
                                             nullable=False))

        Table(
            'place_thingy', metadata,
            Column('thingy_id',
                   Integer,
                   sa.Sequence('thid_seq', optional=True),
                   primary_key=True),
            Column('place_id',
                   Integer,
                   ForeignKey('place.place_id'),
                   nullable=False), Column('name', String(30), nullable=False))

        # association table #1
        Table(
            'place_input', metadata,
            Column('place_id', Integer, ForeignKey('place.place_id')),
            Column('transition_id', Integer,
                   ForeignKey('transition.transition_id')))

        # association table #2
        Table(
            'place_output', metadata,
            Column('place_id', Integer, ForeignKey('place.place_id')),
            Column('transition_id', Integer,
                   ForeignKey('transition.transition_id')))

        Table('place_place', metadata,
              Column('pl1_id', Integer, ForeignKey('place.place_id')),
              Column('pl2_id', Integer, ForeignKey('place.place_id')))