mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	Increase "version" when update the setting value to a same value as before (#28243)
Setting the same value should not trigger DuplicateKey error, and the "version" should be increased
This commit is contained in:
		| @@ -81,7 +81,7 @@ func SetSettings(ctx context.Context, settings map[string]string) error { | |||||||
| 			return err | 			return err | ||||||
| 		} | 		} | ||||||
| 		for k, v := range settings { | 		for k, v := range settings { | ||||||
| 			res, err := e.Exec("UPDATE system_setting SET setting_value=? WHERE setting_key=?", v, k) | 			res, err := e.Exec("UPDATE system_setting SET version=version+1, setting_value=? WHERE setting_key=?", v, k) | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
| 				return err | 				return err | ||||||
| 			} | 			} | ||||||
|   | |||||||
| @@ -39,4 +39,16 @@ func TestSettings(t *testing.T) { | |||||||
| 	assert.EqualValues(t, 3, rev) | 	assert.EqualValues(t, 3, rev) | ||||||
| 	assert.Len(t, settings, 2) | 	assert.Len(t, settings, 2) | ||||||
| 	assert.EqualValues(t, "false", settings[keyName]) | 	assert.EqualValues(t, "false", settings[keyName]) | ||||||
|  |  | ||||||
|  | 	// setting the same value should not trigger DuplicateKey error, and the "version" should be increased | ||||||
|  | 	setting := &system.Setting{SettingKey: keyName} | ||||||
|  | 	_, err = db.GetByBean(db.DefaultContext, setting) | ||||||
|  | 	assert.NoError(t, err) | ||||||
|  | 	assert.EqualValues(t, 2, setting.Version) | ||||||
|  | 	err = system.SetSettings(db.DefaultContext, map[string]string{keyName: "false"}) | ||||||
|  | 	assert.NoError(t, err) | ||||||
|  | 	setting = &system.Setting{SettingKey: keyName} | ||||||
|  | 	_, err = db.GetByBean(db.DefaultContext, setting) | ||||||
|  | 	assert.NoError(t, err) | ||||||
|  | 	assert.EqualValues(t, 3, setting.Version) | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user