Add TablePrimaryKey to syncer.

This commit is contained in:
Yang Luo
2021-12-19 23:33:22 +08:00
parent bf642b35d4
commit db56f54b8c
10 changed files with 75 additions and 8 deletions

View File

@ -43,6 +43,7 @@ type Syncer struct {
Password string `xorm:"varchar(100)" json:"password"` Password string `xorm:"varchar(100)" json:"password"`
Database string `xorm:"varchar(100)" json:"database"` Database string `xorm:"varchar(100)" json:"database"`
Table string `xorm:"varchar(100)" json:"table"` Table string `xorm:"varchar(100)" json:"table"`
TablePrimaryKey string `xorm:"varchar(100)" json:"tablePrimaryKey"`
TableColumns []*TableColumn `xorm:"mediumtext" json:"tableColumns"` TableColumns []*TableColumn `xorm:"mediumtext" json:"tableColumns"`
AffiliationTable string `xorm:"varchar(100)" json:"affiliationTable"` AffiliationTable string `xorm:"varchar(100)" json:"affiliationTable"`
AvatarBaseUrl string `xorm:"varchar(100)" json:"avatarBaseUrl"` AvatarBaseUrl string `xorm:"varchar(100)" json:"avatarBaseUrl"`

View File

@ -68,7 +68,7 @@ func (syncer *Syncer) getActiveColumns() []string {
func (syncer *Syncer) updateUser(user *OriginalUser) bool { func (syncer *Syncer) updateUser(user *OriginalUser) bool {
m := syncer.getMapFromOriginalUser(user) m := syncer.getMapFromOriginalUser(user)
columns := syncer.getActiveColumns() columns := syncer.getActiveColumns()
affected, err := syncer.Adapter.Engine.Table(syncer.Table).ID(user.Id).Cols(columns...).Update(m) affected, err := syncer.Adapter.Engine.Table(syncer.Table).ID(syncer.TablePrimaryKey).Cols(columns...).Update(m)
if err != nil { if err != nil {
panic(err) panic(err)
} }

View File

@ -178,6 +178,16 @@ class SyncerEditPage extends React.Component {
}} /> }} />
</Col> </Col>
</Row> </Row>
<Row style={{marginTop: '20px'}} >
<Col style={{marginTop: '5px'}} span={(Setting.isMobile()) ? 22 : 2}>
{Setting.getLabel(i18next.t("syncer:Table primary key"), i18next.t("syncer:Table primary key - Tooltip"))} :
</Col>
<Col span={22} >
<Input value={this.state.syncer.tablePrimaryKey} onChange={e => {
this.updateSyncerField('tablePrimaryKey', e.target.value);
}} />
</Col>
</Row>
<Row style={{marginTop: '20px'}} > <Row style={{marginTop: '20px'}} >
<Col style={{marginTop: '5px'}} span={(Setting.isMobile()) ? 22 : 2}> <Col style={{marginTop: '5px'}} span={(Setting.isMobile()) ? 22 : 2}>
{Setting.getLabel(i18next.t("syncer:Table columns"), i18next.t("syncer:Table columns - Tooltip"))} : {Setting.getLabel(i18next.t("syncer:Table columns"), i18next.t("syncer:Table columns - Tooltip"))} :

View File

@ -322,15 +322,23 @@
"Affiliation table - Tooltip": "Affiliation table - Tooltip", "Affiliation table - Tooltip": "Affiliation table - Tooltip",
"Avatar base URL": "Avatar base URL", "Avatar base URL": "Avatar base URL",
"Avatar base URL - Tooltip": "Avatar base URL - Tooltip", "Avatar base URL - Tooltip": "Avatar base URL - Tooltip",
"Casdoor column": "Casdoor column",
"Column name": "Column name",
"Column type": "Column type",
"Database": "Database", "Database": "Database",
"Database - Tooltip": "Database - Tooltip", "Database - Tooltip": "Database - Tooltip",
"Edit Syncer": "Edit Syncer", "Edit Syncer": "Edit Syncer",
"Is enabled": "Is enabled", "Is enabled": "Is enabled",
"Is enabled - Tooltip": "Is enabled - Tooltip", "Is enabled - Tooltip": "Is enabled - Tooltip",
"Is hashed": "Is hashed",
"Sync interval": "Sync interval", "Sync interval": "Sync interval",
"Sync interval - Tooltip": "Sync interval - Tooltip", "Sync interval - Tooltip": "Sync interval - Tooltip",
"Table": "Table", "Table": "Table",
"Table - Tooltip": "Table - Tooltip" "Table - Tooltip": "Table - Tooltip",
"Table columns": "Table columns",
"Table columns - Tooltip": "Table columns - Tooltip",
"Table primary key": "Table primary key",
"Table primary key - Tooltip": "Table primary key - Tooltip"
}, },
"token": { "token": {
"Access token": "Access token", "Access token": "Access token",

View File

@ -322,15 +322,23 @@
"Affiliation table - Tooltip": "Affiliation table - Tooltip", "Affiliation table - Tooltip": "Affiliation table - Tooltip",
"Avatar base URL": "Avatar base URL", "Avatar base URL": "Avatar base URL",
"Avatar base URL - Tooltip": "Avatar base URL - Tooltip", "Avatar base URL - Tooltip": "Avatar base URL - Tooltip",
"Casdoor column": "Casdoor column",
"Column name": "Column name",
"Column type": "Column type",
"Database": "Database", "Database": "Database",
"Database - Tooltip": "Database - Tooltip", "Database - Tooltip": "Database - Tooltip",
"Edit Syncer": "Edit Syncer", "Edit Syncer": "Edit Syncer",
"Is enabled": "Is enabled", "Is enabled": "Is enabled",
"Is enabled - Tooltip": "Is enabled - Tooltip", "Is enabled - Tooltip": "Is enabled - Tooltip",
"Is hashed": "Is hashed",
"Sync interval": "Sync interval", "Sync interval": "Sync interval",
"Sync interval - Tooltip": "Sync interval - Tooltip", "Sync interval - Tooltip": "Sync interval - Tooltip",
"Table": "Table", "Table": "Table",
"Table - Tooltip": "Table - Tooltip" "Table - Tooltip": "Table - Tooltip",
"Table columns": "Table columns",
"Table columns - Tooltip": "Table columns - Tooltip",
"Table primary key": "Table primary key",
"Table primary key - Tooltip": "Table primary key - Tooltip"
}, },
"token": { "token": {
"Access token": "Access token", "Access token": "Access token",

View File

@ -322,15 +322,23 @@
"Affiliation table - Tooltip": "Affiliation table - Tooltip", "Affiliation table - Tooltip": "Affiliation table - Tooltip",
"Avatar base URL": "Avatar base URL", "Avatar base URL": "Avatar base URL",
"Avatar base URL - Tooltip": "Avatar base URL - Tooltip", "Avatar base URL - Tooltip": "Avatar base URL - Tooltip",
"Casdoor column": "Casdoor column",
"Column name": "Column name",
"Column type": "Column type",
"Database": "Database", "Database": "Database",
"Database - Tooltip": "Database - Tooltip", "Database - Tooltip": "Database - Tooltip",
"Edit Syncer": "Edit Syncer", "Edit Syncer": "Edit Syncer",
"Is enabled": "Is enabled", "Is enabled": "Is enabled",
"Is enabled - Tooltip": "Is enabled - Tooltip", "Is enabled - Tooltip": "Is enabled - Tooltip",
"Is hashed": "Is hashed",
"Sync interval": "Sync interval", "Sync interval": "Sync interval",
"Sync interval - Tooltip": "Sync interval - Tooltip", "Sync interval - Tooltip": "Sync interval - Tooltip",
"Table": "Table", "Table": "Table",
"Table - Tooltip": "Table - Tooltip" "Table - Tooltip": "Table - Tooltip",
"Table columns": "Table columns",
"Table columns - Tooltip": "Table columns - Tooltip",
"Table primary key": "Table primary key",
"Table primary key - Tooltip": "Table primary key - Tooltip"
}, },
"token": { "token": {
"Access token": "Access token", "Access token": "Access token",

View File

@ -322,15 +322,23 @@
"Affiliation table - Tooltip": "Affiliation table - Tooltip", "Affiliation table - Tooltip": "Affiliation table - Tooltip",
"Avatar base URL": "Avatar base URL", "Avatar base URL": "Avatar base URL",
"Avatar base URL - Tooltip": "Avatar base URL - Tooltip", "Avatar base URL - Tooltip": "Avatar base URL - Tooltip",
"Casdoor column": "Casdoor column",
"Column name": "Column name",
"Column type": "Column type",
"Database": "Database", "Database": "Database",
"Database - Tooltip": "Database - Tooltip", "Database - Tooltip": "Database - Tooltip",
"Edit Syncer": "Edit Syncer", "Edit Syncer": "Edit Syncer",
"Is enabled": "Is enabled", "Is enabled": "Is enabled",
"Is enabled - Tooltip": "Is enabled - Tooltip", "Is enabled - Tooltip": "Is enabled - Tooltip",
"Is hashed": "Is hashed",
"Sync interval": "Sync interval", "Sync interval": "Sync interval",
"Sync interval - Tooltip": "Sync interval - Tooltip", "Sync interval - Tooltip": "Sync interval - Tooltip",
"Table": "Table", "Table": "Table",
"Table - Tooltip": "Table - Tooltip" "Table - Tooltip": "Table - Tooltip",
"Table columns": "Table columns",
"Table columns - Tooltip": "Table columns - Tooltip",
"Table primary key": "Table primary key",
"Table primary key - Tooltip": "Table primary key - Tooltip"
}, },
"token": { "token": {
"Access token": "Access token", "Access token": "Access token",

View File

@ -322,15 +322,23 @@
"Affiliation table - Tooltip": "Affiliation table - Tooltip", "Affiliation table - Tooltip": "Affiliation table - Tooltip",
"Avatar base URL": "Avatar base URL", "Avatar base URL": "Avatar base URL",
"Avatar base URL - Tooltip": "Avatar base URL - Tooltip", "Avatar base URL - Tooltip": "Avatar base URL - Tooltip",
"Casdoor column": "Casdoor column",
"Column name": "Column name",
"Column type": "Column type",
"Database": "Database", "Database": "Database",
"Database - Tooltip": "Database - Tooltip", "Database - Tooltip": "Database - Tooltip",
"Edit Syncer": "Edit Syncer", "Edit Syncer": "Edit Syncer",
"Is enabled": "Is enabled", "Is enabled": "Is enabled",
"Is enabled - Tooltip": "Is enabled - Tooltip", "Is enabled - Tooltip": "Is enabled - Tooltip",
"Is hashed": "Is hashed",
"Sync interval": "Sync interval", "Sync interval": "Sync interval",
"Sync interval - Tooltip": "Sync interval - Tooltip", "Sync interval - Tooltip": "Sync interval - Tooltip",
"Table": "Table", "Table": "Table",
"Table - Tooltip": "Table - Tooltip" "Table - Tooltip": "Table - Tooltip",
"Table columns": "Table columns",
"Table columns - Tooltip": "Table columns - Tooltip",
"Table primary key": "Table primary key",
"Table primary key - Tooltip": "Table primary key - Tooltip"
}, },
"token": { "token": {
"Access token": "Access token", "Access token": "Access token",

View File

@ -322,15 +322,23 @@
"Affiliation table - Tooltip": "Affiliation table - Tooltip", "Affiliation table - Tooltip": "Affiliation table - Tooltip",
"Avatar base URL": "Avatar base URL", "Avatar base URL": "Avatar base URL",
"Avatar base URL - Tooltip": "Avatar base URL - Tooltip", "Avatar base URL - Tooltip": "Avatar base URL - Tooltip",
"Casdoor column": "Casdoor column",
"Column name": "Column name",
"Column type": "Column type",
"Database": "Database", "Database": "Database",
"Database - Tooltip": "Database - Tooltip", "Database - Tooltip": "Database - Tooltip",
"Edit Syncer": "Edit Syncer", "Edit Syncer": "Edit Syncer",
"Is enabled": "Is enabled", "Is enabled": "Is enabled",
"Is enabled - Tooltip": "Is enabled - Tooltip", "Is enabled - Tooltip": "Is enabled - Tooltip",
"Is hashed": "Is hashed",
"Sync interval": "Sync interval", "Sync interval": "Sync interval",
"Sync interval - Tooltip": "Sync interval - Tooltip", "Sync interval - Tooltip": "Sync interval - Tooltip",
"Table": "Table", "Table": "Table",
"Table - Tooltip": "Table - Tooltip" "Table - Tooltip": "Table - Tooltip",
"Table columns": "Table columns",
"Table columns - Tooltip": "Table columns - Tooltip",
"Table primary key": "Table primary key",
"Table primary key - Tooltip": "Table primary key - Tooltip"
}, },
"token": { "token": {
"Access token": "Access token", "Access token": "Access token",

View File

@ -322,15 +322,23 @@
"Affiliation table - Tooltip": "工作单位的数据库表名", "Affiliation table - Tooltip": "工作单位的数据库表名",
"Avatar base URL": "头像基础URL", "Avatar base URL": "头像基础URL",
"Avatar base URL - Tooltip": "头像URL的前缀", "Avatar base URL - Tooltip": "头像URL的前缀",
"Casdoor column": "Casdoor列名",
"Column name": "列名",
"Column type": "列类型",
"Database": "数据库", "Database": "数据库",
"Database - Tooltip": "数据库名称", "Database - Tooltip": "数据库名称",
"Edit Syncer": "修改同步器", "Edit Syncer": "修改同步器",
"Is enabled": "已启用", "Is enabled": "已启用",
"Is enabled - Tooltip": "是否启用", "Is enabled - Tooltip": "是否启用",
"Is hashed": "是否参与哈希计算",
"Sync interval": "同步间隔", "Sync interval": "同步间隔",
"Sync interval - Tooltip": "单位为分钟", "Sync interval - Tooltip": "单位为分钟",
"Table": "表名", "Table": "表名",
"Table - Tooltip": "数据库表名" "Table - Tooltip": "数据库表名",
"Table columns": "表格列",
"Table columns - Tooltip": "参与数据同步的表格列,不参与同步的列不需要添加",
"Table primary key": "表主键",
"Table primary key - Tooltip": "表主键如id"
}, },
"token": { "token": {
"Access token": "Access token", "Access token": "Access token",