Changeset 481 for elixir/trunk/elixir
- Timestamp:
- 09/30/09 20:25:04 (3 years ago)
- Files:
-
- 1 modified
-
elixir/trunk/elixir/relationships.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
elixir/trunk/elixir/relationships.py
r478 r481 906 906 'secondaryjoin' not in self.kwargs: 907 907 self._build_join_clauses() 908 assert self.inverse is None or self.inverse.table is None or \ 909 self.inverse.table is self.table 908 910 return 909 911 910 912 if self.inverse: 911 if self.inverse.table is not None: 912 self.table = self.inverse.table 913 self.primaryjoin_clauses = self.inverse.secondaryjoin_clauses 914 self.secondaryjoin_clauses = self.inverse.primaryjoin_clauses 913 inverse = self.inverse 914 if inverse.table is not None: 915 self.table = inverse.table 916 self.primaryjoin_clauses = inverse.secondaryjoin_clauses 917 self.secondaryjoin_clauses = inverse.primaryjoin_clauses 915 918 return 919 920 assert not inverse.user_tablename or not self.user_tablename or \ 921 inverse.user_tablename == self.user_tablename 922 assert not inverse.remote_colname or not self.local_colname or \ 923 inverse.remote_colname == self.local_colname 924 assert not inverse.local_colname or not self.remote_colname or \ 925 inverse.local_colname == self.remote_colname 926 assert not inverse.schema or not self.schema or \ 927 inverse.schema == self.schema 928 assert not inverse.table_kwargs or not self.table_kwargs or \ 929 inverse.table_kwargs == self.table_kwargs 930 931 self.user_tablename = inverse.user_tablename or self.user_tablename 932 self.local_colname = inverse.remote_colname or self.local_colname 933 self.remote_colname = inverse.local_colname or self.remote_colname 934 self.schema = inverse.schema or self.schema 935 self.local_colname = inverse.remote_colname or self.local_colname 916 936 917 937 # compute table_kwargs … … 961 981 # table name twice)? 962 982 tablename = "%s__%s" % (target_part, source_part) 963 if options.MIGRATION_TO_07_AID and \ 964 e1_desc.tablename >= e2_desc.tablename: 965 oldname = "%s__%s" % (source_part, target_part) 983 else: 984 tablename = "%s__%s" % (source_part, target_part) 985 986 if options.MIGRATION_TO_07_AID: 987 oldname = (self.inverse and 988 e1_desc.tablename < e2_desc.tablename) and \ 989 "%s__%s" % (target_part, source_part) or \ 990 "%s__%s" % (source_part, target_part) 991 if oldname != tablename: 966 992 warnings.warn( 967 993 "The generated table name for the '%s' relationship " … … 973 999 % (self.name, self.entity.__name__, oldname, 974 1000 tablename, oldname)) 975 else:976 tablename = "%s__%s" % (source_part, target_part)977 1001 978 1002 if e1_desc.autoload: … … 1014 1038 fk_colnames = [] 1015 1039 fk_refcols = [] 1016 1017 1040 if colnames: 1018 1041 assert len(colnames) == len(desc.primary_keys) … … 1097 1120 # In the case we have a self-reference, we need to build join clauses 1098 1121 if self.entity is self.target: 1099 #TODO: we should check if that information was defined on the1100 #inverse relationship. We have two options: either we force the1101 #definition on both sides, or we accept defining on one side only.1102 #In the later case, we still need to make the check as to not1103 #peusdo-randomly fail depending on initialization order.1104 1122 if not self.local_colname and not self.remote_colname: 1105 1123 raise Exception(
