fix: adiciona use_alter=True e nomes específicos para chaves estrangeiras circulares

This commit is contained in:
LS
2025-04-09 10:09:31 -03:00
parent abc46704c3
commit 8cef19576e

View File

@@ -64,10 +64,10 @@ class Celula(Base):
id = Column(Integer, primary_key=True, autoincrement=True) id = Column(Integer, primary_key=True, autoincrement=True)
nome = Column(String(100), nullable=False) nome = Column(String(100), nullable=False)
setor_id = Column(Integer, ForeignKey('setores.id')) setor_id = Column(Integer, ForeignKey('setores.id', use_alter=True, name='fk_celula_setor'))
cr_id = Column(Integer, ForeignKey('comites_regionais.id')) cr_id = Column(Integer, ForeignKey('comites_regionais.id', use_alter=True, name='fk_celula_cr'))
secretario = Column(Integer, ForeignKey('militantes.id')) secretario = Column(Integer, ForeignKey('militantes.id', use_alter=True, name='fk_celula_secretario'))
responsavel_financas = Column(Integer, ForeignKey('militantes.id')) responsavel_financas = Column(Integer, ForeignKey('militantes.id', use_alter=True, name='fk_celula_responsavel_financas'))
quadro_orientador = Column(String(255)) quadro_orientador = Column(String(255))
# Relacionamentos # Relacionamentos
@@ -84,10 +84,10 @@ class ComiteRegional(Base):
id = Column(Integer, primary_key=True, autoincrement=True) id = Column(Integer, primary_key=True, autoincrement=True)
nome = Column(String(100), nullable=False) nome = Column(String(100), nullable=False)
responsavel_financas = Column(Integer, ForeignKey('militantes.id')) responsavel_financas = Column(Integer, ForeignKey('militantes.id', use_alter=True, name='fk_cr_responsavel_financas'))
responsavel_formacao = Column(Integer, ForeignKey('militantes.id')) responsavel_formacao = Column(Integer, ForeignKey('militantes.id', use_alter=True, name='fk_cr_responsavel_formacao'))
secretario_organizacao = Column(Integer, ForeignKey('militantes.id')) secretario_organizacao = Column(Integer, ForeignKey('militantes.id', use_alter=True, name='fk_cr_secretario_organizacao'))
correspondente_jornal = Column(Integer, ForeignKey('militantes.id')) correspondente_jornal = Column(Integer, ForeignKey('militantes.id', use_alter=True, name='fk_cr_correspondente_jornal'))
# Relacionamentos # Relacionamentos
responsavel_financas_rel = relationship("Militante", foreign_keys=[responsavel_financas]) responsavel_financas_rel = relationship("Militante", foreign_keys=[responsavel_financas])
@@ -145,7 +145,7 @@ class Militante(Base):
# Relacionamento para múltiplos emails # Relacionamento para múltiplos emails
emails = relationship("EmailMilitante", back_populates="militante") emails = relationship("EmailMilitante", back_populates="militante")
# Endereço # Endereço
endereco_id = Column(Integer, ForeignKey('enderecos.id')) endereco_id = Column(Integer, ForeignKey('enderecos.id', use_alter=True, name='fk_militante_endereco'))
endereco = relationship("Endereco", back_populates="militantes") endereco = relationship("Endereco", back_populates="militantes")
# Redes sociais # Redes sociais
redes_sociais = relationship("RedeSocial", back_populates="militante") redes_sociais = relationship("RedeSocial", back_populates="militante")
@@ -163,9 +163,9 @@ class Militante(Base):
dirigente_sindical = Column(Boolean) dirigente_sindical = Column(Boolean)
central_sindical = Column(String(100)) central_sindical = Column(String(100))
# Responsável pelo cadastro # Responsável pelo cadastro
registrado_por = Column(Integer, ForeignKey('militantes.id')) registrado_por = Column(Integer, ForeignKey('militantes.id', use_alter=True, name='fk_militante_registrado_por'))
# Campos existentes # Campos existentes
celula_id = Column(Integer, ForeignKey('celulas.id')) celula_id = Column(Integer, ForeignKey('celulas.id', use_alter=True, name='fk_militante_celula'))
responsabilidades = Column(Integer, default=0) responsabilidades = Column(Integer, default=0)
otp_secret = Column(String(32)) otp_secret = Column(String(32))
temp_token = Column(String(64)) temp_token = Column(String(64))
@@ -382,9 +382,9 @@ class Setor(Base):
id = Column(Integer, primary_key=True) id = Column(Integer, primary_key=True)
nome = Column(String(100), nullable=False) nome = Column(String(100), nullable=False)
cr_id = Column(Integer, ForeignKey('comites_regionais.id')) cr_id = Column(Integer, ForeignKey('comites_regionais.id', use_alter=True, name='fk_setor_cr'))
responsavel = Column(Integer, ForeignKey('militantes.id')) responsavel = Column(Integer, ForeignKey('militantes.id', use_alter=True, name='fk_setor_responsavel'))
responsavel_financas = Column(Integer, ForeignKey('militantes.id')) responsavel_financas = Column(Integer, ForeignKey('militantes.id', use_alter=True, name='fk_setor_responsavel_financas'))
# Relacionamentos # Relacionamentos
cr = relationship("ComiteRegional", back_populates="setores") cr = relationship("ComiteRegional", back_populates="setores")