Python sqlalchemy.schema.ForeignKey() Examples
The following are 18
code examples of sqlalchemy.schema.ForeignKey().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
sqlalchemy.schema
, or try the search function
.
![](https://www.programcreek.com/common/static/images/search.png)
Example #1
Source File: mapper.py From AnyBlok with Mozilla Public License 2.0 | 6 votes |
def get_fk_mapper(self, registry): """Return the foreign key which represent the attribute in the data base :param registry: instance of the sqlalchemy ForeignKey :rtype: instance of the attribute """ Model = self.check_model_in_first_step(registry) try: column_name = self.check_column_in_first_step(registry, Model) if Model[column_name].foreign_key: return Model[column_name].foreign_key except ModelAttributeException: pass return None
Example #2
Source File: codegen.py From safrs with GNU General Public License v3.0 | 6 votes |
def render_constraint(self, constraint): def render_fk_options(*opts): opts = [repr(opt) for opt in opts] for attr in "ondelete", "onupdate", "deferrable", "initially", "match": value = getattr(constraint, attr, None) if value: opts.append("{0}={1!r}".format(attr, value)) return ", ".join(opts) if isinstance(constraint, ForeignKey): remote_column = "{0}.{1}".format(constraint.column.table.fullname, constraint.column.name) return "ForeignKey({0})".format(render_fk_options(remote_column)) elif isinstance(constraint, ForeignKeyConstraint): local_columns = _get_column_names(constraint) remote_columns = ["{0}.{1}".format(fk.column.table.fullname, fk.column.name) for fk in constraint.elements] return "ForeignKeyConstraint({0})".format(render_fk_options(local_columns, remote_columns)) elif isinstance(constraint, CheckConstraint): return "CheckConstraint({0!r})".format(self._get_compiled_expression(constraint.sqltext)) elif isinstance(constraint, UniqueConstraint): columns = [repr(col.name) for col in constraint.columns] return "UniqueConstraint({0})".format(", ".join(columns))
Example #3
Source File: test_codegen.py From safrs with GNU General Public License v3.0 | 6 votes |
def test_foreign_key_options(metadata): Table( "simple_items", metadata, Column( "name", VARCHAR, ForeignKey("simple_items.name", ondelete="CASCADE", onupdate="CASCADE", deferrable=True, initially="DEFERRED") ), ) assert ( generate_code(metadata) == """\ # coding: utf-8 from sqlalchemy import Column, ForeignKey, MetaData, String, Table metadata = MetaData() t_simple_items = Table( 'simple_items', metadata, Column('name', String, ForeignKey('simple_items.name', ondelete='CASCADE', \ onupdate='CASCADE', deferrable=True, initially='DEFERRED')) ) """ )
Example #4
Source File: test_codegen.py From safrs with GNU General Public License v3.0 | 5 votes |
def test_onetoone(metadata): Table( "simple_items", metadata, Column("id", INTEGER, primary_key=True), Column("other_item_id", INTEGER), ForeignKeyConstraint(["other_item_id"], ["other_items.id"]), UniqueConstraint("other_item_id"), ) Table("other_items", metadata, Column("id", INTEGER, primary_key=True)) assert ( generate_code(metadata) == """\ # coding: utf-8 from sqlalchemy import Column, ForeignKey, Integer from sqlalchemy.orm import relationship from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() metadata = Base.metadata class OtherItem(Base): __tablename__ = 'other_items' id = Column(Integer, primary_key=True) class SimpleItem(Base): __tablename__ = 'simple_items' id = Column(Integer, primary_key=True) other_item_id = Column(ForeignKey('other_items.id'), unique=True) other_item = relationship('OtherItem', uselist=False) """ )
Example #5
Source File: test_lambdas.py From sqlalchemy with MIT License | 5 votes |
def user_address_fixture(self, metadata): users = Table( "users", metadata, Column("id", Integer, primary_key=True), Column("name", String(50)), ) addresses = Table( "addresses", metadata, Column("id", Integer), Column("user_id", ForeignKey("users.id")), Column("email", String(50)), ) return users, addresses
Example #6
Source File: test_provision.py From oslo.db with Apache License 2.0 | 5 votes |
def setUp(self): super(DropAllObjectsTest, self).setUp() self.metadata = metadata = schema.MetaData() schema.Table( 'a', metadata, schema.Column('id', types.Integer, primary_key=True), mysql_engine='InnoDB' ) schema.Table( 'b', metadata, schema.Column('id', types.Integer, primary_key=True), schema.Column('a_id', types.Integer, schema.ForeignKey('a.id')), mysql_engine='InnoDB' ) schema.Table( 'c', metadata, schema.Column('id', types.Integer, primary_key=True), schema.Column('b_id', types.Integer, schema.ForeignKey('b.id')), schema.Column( 'd_id', types.Integer, schema.ForeignKey('d.id', use_alter=True, name='c_d_fk')), mysql_engine='InnoDB' ) schema.Table( 'd', metadata, schema.Column('id', types.Integer, primary_key=True), schema.Column('c_id', types.Integer, schema.ForeignKey('c.id')), mysql_engine='InnoDB' ) metadata.create_all(self.engine, checkfirst=False) # will drop nothing if the test worked self.addCleanup(metadata.drop_all, self.engine, checkfirst=True)
Example #7
Source File: test_codegen.py From safrs with GNU General Public License v3.0 | 5 votes |
def test_foreign_key_schema(metadata): Table( "simple_items", metadata, Column("id", INTEGER, primary_key=True), Column("other_item_id", INTEGER), ForeignKeyConstraint(["other_item_id"], ["otherschema.other_items.id"]), ) Table("other_items", metadata, Column("id", INTEGER, primary_key=True), schema="otherschema") assert ( generate_code(metadata) == """\ # coding: utf-8 from sqlalchemy import Column, ForeignKey, Integer from sqlalchemy.orm import relationship from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() metadata = Base.metadata class OtherItem(Base): __tablename__ = 'other_items' __table_args__ = {'schema': 'otherschema'} id = Column(Integer, primary_key=True) class SimpleItem(Base): __tablename__ = 'simple_items' id = Column(Integer, primary_key=True) other_item_id = Column(ForeignKey('otherschema.other_items.id')) other_item = relationship('OtherItem') """ )
Example #8
Source File: test_mapper.py From AnyBlok with Mozilla Public License 2.0 | 5 votes |
def test_get_fk(self, registry_blok): registry = registry_blok ma = ModelAttribute('Model.System.Model', 'name') assert isinstance(ma.get_fk(registry), ForeignKey)
Example #9
Source File: test_codegen.py From safrs with GNU General Public License v3.0 | 5 votes |
def test_onetomany_selfref_multi(metadata): Table( "simple_items", metadata, Column("id", INTEGER, primary_key=True), Column("parent_item_id", INTEGER), Column("top_item_id", INTEGER), ForeignKeyConstraint(["parent_item_id"], ["simple_items.id"]), ForeignKeyConstraint(["top_item_id"], ["simple_items.id"]), ) assert ( generate_code(metadata) == """\ # coding: utf-8 from sqlalchemy import Column, ForeignKey, Integer from sqlalchemy.orm import relationship from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() metadata = Base.metadata class SimpleItem(Base): __tablename__ = 'simple_items' id = Column(Integer, primary_key=True) parent_item_id = Column(ForeignKey('simple_items.id')) top_item_id = Column(ForeignKey('simple_items.id')) parent_item = relationship('SimpleItem', remote_side=[id], \ primaryjoin='SimpleItem.parent_item_id == SimpleItem.id') top_item = relationship('SimpleItem', remote_side=[id], \ primaryjoin='SimpleItem.top_item_id == SimpleItem.id') """ )
Example #10
Source File: test_codegen.py From safrs with GNU General Public License v3.0 | 5 votes |
def test_onetomany_selfref(metadata): Table( "simple_items", metadata, Column("id", INTEGER, primary_key=True), Column("parent_item_id", INTEGER), ForeignKeyConstraint(["parent_item_id"], ["simple_items.id"]), ) assert ( generate_code(metadata) == """\ # coding: utf-8 from sqlalchemy import Column, ForeignKey, Integer from sqlalchemy.orm import relationship from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() metadata = Base.metadata class SimpleItem(Base): __tablename__ = 'simple_items' id = Column(Integer, primary_key=True) parent_item_id = Column(ForeignKey('simple_items.id')) parent_item = relationship('SimpleItem', remote_side=[id]) """ )
Example #11
Source File: test_codegen.py From safrs with GNU General Public License v3.0 | 5 votes |
def test_onetomany(metadata): Table( "simple_items", metadata, Column("id", INTEGER, primary_key=True), Column("container_id", INTEGER), ForeignKeyConstraint(["container_id"], ["simple_containers.id"]), ) Table("simple_containers", metadata, Column("id", INTEGER, primary_key=True)) assert ( generate_code(metadata) == """\ # coding: utf-8 from sqlalchemy import Column, ForeignKey, Integer from sqlalchemy.orm import relationship from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() metadata = Base.metadata class SimpleContainer(Base): __tablename__ = 'simple_containers' id = Column(Integer, primary_key=True) class SimpleItem(Base): __tablename__ = 'simple_items' id = Column(Integer, primary_key=True) container_id = Column(ForeignKey('simple_containers.id')) container = relationship('SimpleContainer') """ )
Example #12
Source File: mapper.py From AnyBlok with Mozilla Public License 2.0 | 5 votes |
def get_fk(self, registry): """Return the foreign key which represent the attribute in the data base :param registry: instance of the sqlalchemy ForeignKey :rtype: instance of the attribute """ return ForeignKey(self.get_fk_name(registry), **self._options)
Example #13
Source File: mapper.py From AnyBlok with Mozilla Public License 2.0 | 5 votes |
def get_fk_column(self, registry): """Return the foreign key which represent the attribute in the data base :param registry: instance of the sqlalchemy ForeignKey :rtype: instance of the attribute """ mapper = self.get_fk_mapper(registry) if mapper: return mapper.attribute_name return None
Example #14
Source File: test_mapper.py From AnyBlok with Mozilla Public License 2.0 | 5 votes |
def test_get_fk_with_options(self, registry_blok): registry = registry_blok ma = ModelAttribute('Model.System.Model', 'name').options( ondelete='cascade') mafk = ma.get_fk(registry) assert isinstance(mafk, ForeignKey)
Example #15
Source File: test_codegen.py From safrs with GNU General Public License v3.0 | 4 votes |
def test_onetomany_multiref(metadata): Table( "simple_items", metadata, Column("id", INTEGER, primary_key=True), Column("parent_container_id", INTEGER), Column("top_container_id", INTEGER), ForeignKeyConstraint(["parent_container_id"], ["simple_containers.id"]), ForeignKeyConstraint(["top_container_id"], ["simple_containers.id"]), ) Table("simple_containers", metadata, Column("id", INTEGER, primary_key=True)) assert ( generate_code(metadata) == """\ # coding: utf-8 from sqlalchemy import Column, ForeignKey, Integer from sqlalchemy.orm import relationship from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() metadata = Base.metadata class SimpleContainer(Base): __tablename__ = 'simple_containers' id = Column(Integer, primary_key=True) class SimpleItem(Base): __tablename__ = 'simple_items' id = Column(Integer, primary_key=True) parent_container_id = Column(ForeignKey('simple_containers.id')) top_container_id = Column(ForeignKey('simple_containers.id')) parent_container = relationship('SimpleContainer', \ primaryjoin='SimpleItem.parent_container_id == SimpleContainer.id') top_container = relationship('SimpleContainer', \ primaryjoin='SimpleItem.top_container_id == SimpleContainer.id') """ )
Example #16
Source File: test_codegen.py From safrs with GNU General Public License v3.0 | 4 votes |
def test_manytomany(metadata): Table("simple_items", metadata, Column("id", INTEGER, primary_key=True)) Table("simple_containers", metadata, Column("id", INTEGER, primary_key=True)) Table( "container_items", metadata, Column("item_id", INTEGER), Column("container_id", INTEGER), ForeignKeyConstraint(["item_id"], ["simple_items.id"]), ForeignKeyConstraint(["container_id"], ["simple_containers.id"]), ) assert ( generate_code(metadata) == """\ # coding: utf-8 from sqlalchemy import Column, ForeignKey, Integer, Table from sqlalchemy.orm import relationship from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() metadata = Base.metadata class SimpleContainer(Base): __tablename__ = 'simple_containers' id = Column(Integer, primary_key=True) items = relationship('SimpleItem', secondary='container_items') class SimpleItem(Base): __tablename__ = 'simple_items' id = Column(Integer, primary_key=True) t_container_items = Table( 'container_items', metadata, Column('item_id', ForeignKey('simple_items.id')), Column('container_id', ForeignKey('simple_containers.id')) ) """ )
Example #17
Source File: test_codegen.py From safrs with GNU General Public License v3.0 | 4 votes |
def test_manytomany_selfref(metadata): Table("simple_items", metadata, Column("id", INTEGER, primary_key=True)) Table( "child_items", metadata, Column("parent_id", INTEGER), Column("child_id", INTEGER), ForeignKeyConstraint(["parent_id"], ["simple_items.id"]), ForeignKeyConstraint(["child_id"], ["simple_items.id"]), schema="otherschema", ) assert ( generate_code(metadata) == """\ # coding: utf-8 from sqlalchemy import Column, ForeignKey, Integer, Table from sqlalchemy.orm import relationship from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() metadata = Base.metadata class SimpleItem(Base): __tablename__ = 'simple_items' id = Column(Integer, primary_key=True) parents = relationship( 'SimpleItem', secondary='otherschema.child_items', primaryjoin='SimpleItem.id == child_items.c.child_id', secondaryjoin='SimpleItem.id == child_items.c.parent_id' ) t_child_items = Table( 'child_items', metadata, Column('parent_id', ForeignKey('simple_items.id')), Column('child_id', ForeignKey('simple_items.id')), schema='otherschema' ) """ )
Example #18
Source File: test_codegen.py From safrs with GNU General Public License v3.0 | 4 votes |
def test_joined_inheritance(metadata): Table( "simple_sub_items", metadata, Column("simple_items_id", INTEGER, primary_key=True), Column("data3", INTEGER), ForeignKeyConstraint(["simple_items_id"], ["simple_items.super_item_id"]), ) Table("simple_super_items", metadata, Column("id", INTEGER, primary_key=True), Column("data1", INTEGER)) Table( "simple_items", metadata, Column("super_item_id", INTEGER, primary_key=True), Column("data2", INTEGER), ForeignKeyConstraint(["super_item_id"], ["simple_super_items.id"]), ) assert ( generate_code(metadata) == """\ # coding: utf-8 from sqlalchemy import Column, ForeignKey, Integer from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() metadata = Base.metadata class SimpleSuperItem(Base): __tablename__ = 'simple_super_items' id = Column(Integer, primary_key=True) data1 = Column(Integer) class SimpleItem(SimpleSuperItem): __tablename__ = 'simple_items' super_item_id = Column(ForeignKey('simple_super_items.id'), primary_key=True) data2 = Column(Integer) class SimpleSubItem(SimpleItem): __tablename__ = 'simple_sub_items' simple_items_id = Column(ForeignKey('simple_items.super_item_id'), primary_key=True) data3 = Column(Integer) """ )