fix: 移除代码生成表业务表外键,修复无法删除的问题

This commit is contained in:
insistence
2025-12-17 17:02:42 +08:00
parent 1857663c9f
commit b1563b0d39
3 changed files with 14 additions and 9 deletions
@@ -1,7 +1,7 @@
from datetime import datetime
from sqlalchemy import CHAR, BigInteger, Column, DateTime, ForeignKey, Integer, String
from sqlalchemy.orm import relationship
from sqlalchemy import CHAR, BigInteger, Column, DateTime, Integer, String
from sqlalchemy.orm import foreign, relationship
from config.database import Base
from config.env import DataBaseConfig
@@ -57,7 +57,12 @@ class GenTable(Base):
comment='备注',
)
columns = relationship('GenTableColumn', order_by='GenTableColumn.sort', back_populates='tables')
columns = relationship(
'GenTableColumn',
primaryjoin=lambda: GenTable.table_id == foreign(GenTableColumn.table_id),
order_by='GenTableColumn.sort',
back_populates='tables',
)
class GenTableColumn(Base):
@@ -69,7 +74,7 @@ class GenTableColumn(Base):
__table_args__ = {'comment': '代码生成业务表字段'}
column_id = Column(BigInteger, primary_key=True, autoincrement=True, nullable=False, comment='编号')
table_id = Column(BigInteger, ForeignKey('gen_table.table_id'), nullable=True, comment='归属表编号')
table_id = Column(BigInteger, nullable=True, comment='归属表编号')
column_name = Column(String(200), nullable=True, comment='列名称')
column_comment = Column(String(500), nullable=True, comment='列描述')
column_type = Column(String(100), nullable=True, comment='列类型')
@@ -96,4 +101,6 @@ class GenTableColumn(Base):
update_by = Column(String(64), server_default="''", comment='更新者')
update_time = Column(DateTime, nullable=True, default=datetime.now(), comment='更新时间')
tables = relationship('GenTable', back_populates='columns')
tables = relationship(
'GenTable', primaryjoin=lambda: foreign(GenTableColumn.table_id) == GenTable.table_id, back_populates='columns'
)
@@ -936,8 +936,7 @@ create table gen_table_column (
create_time timestamp(0),
update_by varchar(64) default '',
update_time timestamp(0),
primary key (column_id),
constraint fk_gen_table_column_table_id foreign key (table_id) references gen_table(table_id)
primary key (column_id)
);
comment on column gen_table_column.column_id is '编号';
comment on column gen_table_column.table_id is '归属表编号';
+1 -2
View File
@@ -712,6 +712,5 @@ create table gen_table_column (
create_time datetime comment '创建时间',
update_by varchar(64) default '' comment '更新者',
update_time datetime comment '更新时间',
primary key (column_id),
foreign key (table_id) references gen_table(table_id)
primary key (column_id)
) engine=innodb auto_increment=1 comment = '代码生成业务表字段';