Jinzhu
5daa413f41
Stabilize schema.FieldsWithDefaultDBValue's order, close #4643
2021-11-08 20:20:55 +08:00
Mayank Govilla
d9d5c4dce0
Fix self-referential belongs to constraint ( #4801 )
...
* create tests for self-ref has one migration
* add relation equality check to avoid skipping self-referential schemas
* remove drop table error check
2021-11-08 09:47:29 +08:00
Jason Lee
d3211908a0
Refactor ParseWithSchemaTable method and improve test. ( #4789 )
...
* Refactor ParseWithSchemaTable method and improve test.
* Fix schema.ParseWithSchemaTable method for only use schemaTable in migrator and improve test.
* Rename `schemaTable` to `specialTableName` for clearly argument.
2021-10-25 11:26:44 +08:00
Wendell Sun
a3bd9c3ea2
fix: automigrate error caused by indexes while using dynamic table name
2021-10-19 09:59:57 +08:00
kinggo
ec58e3319f
fixed:panic when create value from nil struct pointer. ( #4771 )
...
* fixed:create nil pointer
* fixed:panic when create value from nil struct pointer.
2021-10-12 21:19:08 +08:00
Paras Waykole
5d91ddac8c
fixed belongs_to & has_one reversed if field same (proper fix) ( #4694 )
...
* fixed belongs_to & has_one reversed if field same
* hasmany same foreign key bug fixed and test added
* belongsToSameForeignKey fixed and reverted old fix
2021-10-08 10:59:55 +08:00
Jinzhu
da16a8aac6
Update updated_at when upserting with Create OnConflict
2021-09-17 15:29:49 +08:00
Jinzhu
12bbde89e6
Fix Scan with interface
2021-09-17 14:04:19 +08:00
Jinzhu
6c94b07e98
try to fix fatal error: concurrent map read and map write
2021-09-07 15:30:14 +08:00
Jinzhu
2b2f6e77af
Add SchemaName to NamingStrategy
2021-08-11 16:20:29 +08:00
daheige
7a49629fd1
optimize Parse func for fieldValue.Interface
2021-07-28 19:00:34 +08:00
daheige
a70254609d
optimize setupValuerAndSetter func
2021-07-14 22:03:17 +08:00
Burak Demirpolat
0329b800b0
slightly better callback warning ( #4495 )
2021-07-13 16:38:44 +08:00
wangyuehong
80497f27a6
title foreign schema for many2many to avoid panic ( #4496 )
...
Co-authored-by: yuehong.wang <yuehong.wang@dena.jp>
2021-07-13 16:36:22 +08:00
heige
50e85e14d4
Code optimize ( #4415 )
...
* optimize gormSourceDir replace
* fmt.Errorf adjust and Optimize for-break
* strings trim
* feat: avoid using the same name field and if..else optimization adjustment
* optimization callbacks/create.go Create func if...else logic
* fix: callbacks/create.go Create func
* fix FileWithLineNum func and add gormSourceDir unit test
* remove debug print and utils_filenum_test.go
2021-06-10 10:21:28 +08:00
Brenda Wallace
ac722c16f9
Small grammar fix in error message ( #4406 )
2021-05-24 10:23:34 +08:00
Paras Waykole
79f427d862
fixed has_many stopped working if field names are identical ( #4387 )
...
* fixed belongs_to & has_one reversed if field same
* hasmany same foreign key bug fixed and test added
2021-05-19 16:05:29 +08:00
Chen Quan
a480bd8545
Update Optimize schema ( #4364 )
2021-05-10 09:51:50 +08:00
Jinzhu
6b7abc54a2
Fix tests
2021-05-06 13:06:31 +08:00
Jinzhu
2aca96d147
test ignore migration, close #4314 , #4315
2021-05-05 08:26:48 +08:00
Paras Waykole
8f7f3ad315
fixed belongs_to & has_one reversed if field same ( #4343 )
2021-05-05 07:57:54 +08:00
Jinzhu
70e93e73d8
Check data type if copyable before change reference field's type
2021-04-30 16:35:55 +08:00
Sky34gl3
a855fe6402
Fixed naming longer than 64 characters ( #4310 )
...
Co-authored-by: Mickael MAUGER <mickael.mauger@almerys.com>
2021-04-22 13:11:19 +08:00
Chris Faulkner
15a46bc042
Fix some typos ( #4294 )
2021-04-19 21:03:39 +08:00
heige
74e7a9ca07
Optimize reflect value length and method ( #4280 )
...
* Respect ignore migration when add column (#4276 )
continue https://github.com/go-gorm/gorm/pull/4028
* feat: Optimal value type acquisition for v (#4278 )
* feat: optimize relect value length and value
* feat: optimize ConvertSliceOfMapToValuesForCreate method
Co-authored-by: yrong1997 <yrong1997@gmail.com>
2021-04-14 13:00:54 +08:00
heige
5555b010dc
feat: Optimal value type acquisition for v ( #4278 )
2021-04-13 09:41:30 +08:00
gavwu
8cfa9d98f0
Update field.go ( #4228 )
...
seems like the `if-else` branch do the same thing, so remove it
2021-04-02 09:56:38 +08:00
Jinzhu
220349ccf2
Fix omit associations, close #4161
2021-03-19 15:15:26 +08:00
Shubhendra Singh Chauhan
0348b1d3c1
chore: improve code quality ( #4123 )
...
* Combine multiple `append`s into a single call
* Clean up copied struct fields with type conversion
* Remove unnecessary use of slice
2021-03-08 10:46:43 +08:00
heige
02cb40531e
Optimize parse constraint ( #4153 )
...
* for Config.cacheStore store PreparedStmtDB key
* invalid db error and value and invalid value length error (#4151 )
* support named params in Select API (#4142 )
* adds support for named arguments in select
* changes clause identifies and adds test
* optimize match english letters and midline
Co-authored-by: Ratan Phayade <ratanphayade@users.noreply.github.com>
2021-03-08 10:21:33 +08:00
Sivchari
adf85d5b82
change the method of initializing slice ( #4097 )
...
* change the method of initializing slice and fixed the length to be specified as 0
* keep the association.go code in the var group
* keep the association.go code in the var group
* change to initializing in var group
2021-03-04 19:44:15 +08:00
Jinzhu
92a2389450
Fix create duplicated constraint, close #4090
2021-02-16 08:35:19 +08:00
Jinzhu
628a0ae707
Fix foreign key & reference with same name, close #4081
2021-02-15 09:10:51 +08:00
Joel Nordell
5744e29fbd
Replacer interface for more flexible NamingStrategy ( #4042 )
...
* Change NameReplacer to an interface, allowing custom Replacers.
* Add NoLowerCase option to skip the snake_casing of names.
* Move sync.Map from global variable into member of NamingStrategy.
This maintains backward compatibility by making the smap optional - the
NamingStrategy still works if it is nil. gorm.Open activates it by
calling Init() if the given Namer is a schema.NamingStrategy.
Also, this changes the key stored in the smap to be the original name,
instead of the replaced name.
* Refactor NamingStrategy tests to add more assertions about how and when Replacers get called.
* Remove the name cache from NamingStrategy.
2021-02-14 08:16:24 +08:00
yrong1997
2ba612e805
Add field tag to ignore migration ( #4028 )
...
* Add field tag to ignore migration
* Fix null value with space
* refactor migration tag
2021-02-09 16:03:02 +08:00
Jinzhu
deff0594ee
Save associations based on creatable/updatable permission, close #4056
2021-02-07 14:24:11 +08:00
heige
e80853e7f5
optimization check for ParseCheckConstraints ( #4063 )
2021-02-07 10:12:13 +08:00
Jinzhu
8f37cb0195
Make has to be a const, close #4024
2021-02-01 10:42:13 +08:00
Jinzhu
db0cc4d60b
Fix too long foreign key/checker names, close #4026
2021-02-01 10:37:12 +08:00
Jinzhu
916338a9e1
Test migrate constraints, close #3986
2021-01-26 13:39:34 +08:00
Jinzhu
6095dbf939
Fix parse embedded relations, close #3964 , #3965
2021-01-19 15:40:04 +08:00
Lisa Casner
ce610a9560
title case schema name ( #3940 )
2021-01-13 13:05:05 +08:00
Jinzhu
b864a5457a
Allow foreign key following the default naming conventions, close #3928
2021-01-10 17:32:17 +08:00
Jinzhu
79864af9ff
Allow customize auto increment increment
2020-12-30 11:16:40 +08:00
Jinzhu
065787c54e
Compatible with with foreign key with ID suffix #3890
2020-12-28 18:20:55 +08:00
Jinzhu
8bf50a5592
Fix parse relations if only specfied References, close #3890
2020-12-28 17:58:12 +08:00
Jinzhu
6a0fca2195
Return error for invalid relations definition, close #3830
2020-12-06 18:07:16 +08:00
Jinzhu
f655041908
Allow overwrite ignored field's permission, close #3829
2020-12-06 11:07:05 +08:00
Andy Bursavich
61d3a4d6ea
Fix schema initialization paths ( #3825 )
...
* Fix schema initialization paths
The initialized channel was only closed if the schema's cacheStore did not contain the embeddedCacheKey and there were no errors parsing relations. If the key existed or an error occurred, it would not be closed. This could leave other goroutines waiting for synchronization that will never occur.
Additionally, the other code paths that wait for initialization to complete did not return the possible error.
* Unnest common schema initialization
This makes the common code path less deeply nested and the flow control easier to follow.
2020-12-04 11:28:38 +08:00
Jinzhu
0f77500917
Waiting for schema to be initialized, close #3790
2020-11-27 17:05:45 +08:00
Jinzhu
6950007d6a
Fix failed to parse relations when using goroutinue, close #3790
...
commit ee0ec43e8dfa85c1c1a562c2d0d47776cf8abd92
Author: Jinzhu <wosmvp@gmail.com>
Date: Fri Nov 27 14:31:57 2020 +0800
Fix failed to parse relations when using goroutinue, close #3790
commit 590e73ff95
Author: rokeyzhao <rokeyzhao@tencent.com>
Date: Thu Nov 26 20:27:55 2020 +0800
test: no cache preload in goroutine
2020-11-27 14:32:20 +08:00
Jinzhu
66e8a72bf1
Support NameReplace for NamingStrategy, close #3779
2020-11-23 11:24:07 +08:00
alresvor
a4c0c6b400
cache converted name ( #3736 )
...
BenchmarkToName-8 2322307 521 ns/op 88 B/op 5 allocs/op
↓
BenchmarkToName-8 19997366 55.0 ns/op 0 B/op 0 allocs/op
2020-11-16 15:16:15 +08:00
Jinzhu
1e241aa645
Reduce GC alloc
2020-11-10 21:23:20 +08:00
Jinzhu
cb591a7129
Fix panic when using FirstOrCreate with soft delete, close #3671
2020-10-23 18:40:05 +08:00
Jinzhu
5fee5b1b24
Add option tag support for index
2020-10-21 20:18:21 +08:00
Jinzhu
3d846957cd
Compatible with tag notNull
2020-10-09 17:42:28 +08:00
Jinzhu
a2faa41cbe
Refactor NamingStrategy, close #3540
2020-09-28 10:55:27 +08:00
Jinzhu
ba253982bf
Fix Pluck with Time and Scanner
2020-09-24 20:08:24 +08:00
Jinzhu
1a526e6802
Fix NamingStrategy with embedded struct, close #3513
2020-09-24 11:32:38 +08:00
Jinzhu
ed1b134e1c
Fix use uint to for autoCreateTime, autoUpdateTime
2020-09-11 17:33:31 +08:00
Jinzhu
b8a74a80d7
Fix embedded struct with default value, close #3451
2020-09-11 11:18:54 +08:00
Jinzhu
231effe119
Fix parse blank default value, close #3442
2020-09-10 11:59:18 +08:00
Jinzhu
f6ed895caf
Build relationships if fields are not ignored, fix #3181
2020-09-09 16:37:05 +08:00
Jinzhu
6e38a2c2d5
Fix many2many join table name rule
2020-09-06 10:51:21 +08:00
Jinzhu
f121622228
Don't add prefix for invalid embedded fields
2020-09-04 14:35:44 +08:00
Jinzhu
6a86646469
Fix use db function as integer's default value, close #3384
2020-09-03 20:41:00 +08:00
Jinzhu
78e9c9b748
raise error when failed to parse default value, close #3378
2020-09-03 18:20:57 +08:00
Jinzhu
f2adb088c5
Set field size from primary fields to foreign fields
2020-09-03 16:11:15 +08:00
Jinzhu
dbe0f4d8d7
Allow use NULL as default value for string, close #3363
2020-09-02 20:15:12 +08:00
aimuz
9a101c8a08
fmt.Sprint() to strconv.Format ( #3354 )
2020-09-01 21:03:37 +08:00
Jinzhu
162367be7d
Fix multiple M2M relations on one table, close #3347
2020-09-01 11:30:16 +08:00
Jinzhu
53f8c9fc1c
More compatible prioritized primary field #3156
2020-08-30 20:58:14 +08:00
Jinzhu
c19a3abefb
Fix self-referential belongs to, close #3319
2020-08-28 11:31:13 +08:00
Jinzhu
ce8853e7a6
Add GormValuer interface support
2020-08-27 15:03:57 +08:00
Jinzhu
0f3201e73b
friendly invalid field error message
2020-08-25 18:18:16 +08:00
Jinzhu
cc6a64adfb
Support smart migrate, close #3078
2020-08-23 18:16:12 +08:00
Jinzhu
2b510d6423
Don't create index for join table, close #3294
2020-08-21 15:40:50 +08:00
Jinzhu
f88e8b072c
Check valid pointer before use it as Valuer
2020-08-20 18:13:29 +08:00
Jinzhu
06de6e8834
Test same field name from embedded field, close #3291
2020-08-20 10:58:35 +08:00
Jinzhu
3313c11888
Fix embedded struct containing field named ID, close #3286
2020-08-19 19:15:27 +08:00
Jinzhu
c1782d60c1
Fix embedded scanner/valuer, close #3283
2020-08-19 15:47:08 +08:00
Jinzhu
dc48e04896
Fix nested embedded struct, close #3278
2020-08-18 11:21:40 +08:00
Jinzhu
681268cc43
Refactor Create/Query/Update/DeleteClauses interface
2020-08-17 16:31:09 +08:00
Jinzhu
6834c25cec
Fix stack overflow for embedded self-referred associations, close #3269
2020-08-17 12:02:46 +08:00
Jinzhu
7d45833f3e
Fix driver.Valuer interface returns nil, close #3248
2020-08-13 12:05:55 +08:00
Jinzhu
a3dda47afa
Don't parse ignored anonymous field
2020-08-13 10:23:23 +08:00
Jinzhu
ff985b90cc
Fix failed to guess relations for embedded types, close #3224
2020-08-04 12:25:34 +08:00
Jinzhu
f83b00d20d
Fix Count with Select when Model not specfied, close #3220
2020-08-03 10:30:25 +08:00
Jinzhu
2676fa4fb8
Remove autoincrement tag for join table, close #3217
2020-07-31 18:19:25 +08:00
lninl
7bb883b665
Auto creating/updating time with unix (milli) second ( #3213 )
...
* Auto creating/updating time with unix (milli) second
* add test for 'Auto creating/updating time with unix (milli) second'
2020-07-30 17:39:57 +08:00
Jinzhu
47a5196734
Fix uninitialized Valuer return time.Time, close #3214
2020-07-30 17:37:07 +08:00
Jinzhu
7c2ecdfc1c
Fix use pointer of Valuer as foreign key, close #3212
2020-07-30 10:23:35 +08:00
Jinzhu
2cbdd29f26
Returns error for invalid embedded field, close #3209
2020-07-29 10:23:14 +08:00
Jinzhu
7021db3655
Fix FieldsWithDefaultDBValue for primary field, close #3187
2020-07-22 19:03:19 +08:00
Jinzhu
ef002fd7ac
Add GORMDataType to Field, close #3171
2020-07-20 19:00:03 +08:00
Jinzhu
6dc583869b
Don't use value's first field to guess data type for struct implements GormDataTypeInterface
2020-07-17 12:02:00 +08:00
Jinzhu
4456df7a5d
Lint with golangci-lint
2020-07-16 11:27:12 +08:00
Jinzhu
0028246ea5
Don't set DefaultValueInterface when DefaultValue not set, close #3152
2020-07-16 10:19:24 +08:00
Jinzhu
bc3728a18f
Fix concurrent map writes, close #3126
2020-07-10 07:14:37 +08:00