Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boxiang Sun
gitlab-ce
Commits
145832d6
Commit
145832d6
authored
Jun 15, 2018
by
blackst0ne
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[Rails5] Fix optimistic lock value
Update the monkey-patch to make it work in Rails 5.
parent
fb08183e
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
64 additions
and
52 deletions
+64
-52
changelogs/unreleased/blackst0ne-rails5-fix-optimistic-lock-values.yml
...released/blackst0ne-rails5-fix-optimistic-lock-values.yml
+5
-0
config/initializers/active_record_locking.rb
config/initializers/active_record_locking.rb
+59
-52
No files found.
changelogs/unreleased/blackst0ne-rails5-fix-optimistic-lock-values.yml
0 → 100644
View file @
145832d6
---
title
:
"
[Rails5]
Fix
optimistic
lock
value"
merge_request
:
19878
author
:
"
@blackst0ne"
type
:
fixed
config/initializers/active_record_locking.rb
View file @
145832d6
# rubocop:disable Lint/RescueException
# rubocop:disable Lint/RescueException
# Remove this entire initializer when we are at rails 5.0.
# Remove this monkey-patch when all lock_version values are converted from NULLs to zeros.
# This file fixes the bug (see below) which has been fixed in the upstream.
# See https://gitlab.com/gitlab-org/gitlab-ce/issues/25228
unless
Gitlab
.
rails5?
module
ActiveRecord
# This patch fixes https://github.com/rails/rails/issues/26024
# TODO: Remove it when it's no longer necessary
module
ActiveRecord
module
Locking
module
Locking
module
Optimistic
module
Optimistic
# We overwrite this method because we don't want to have default value
# We overwrite this method because we don't want to have default value
...
@@ -68,6 +64,17 @@ unless Gitlab.rails5?
...
@@ -68,6 +64,17 @@ unless Gitlab.rails5?
# This is patched because we want `lock_version` default to `NULL`
# This is patched because we want `lock_version` default to `NULL`
# rather than `0`
# rather than `0`
if
Gitlab
.
rails5?
class
LockingType
def
deserialize
(
value
)
super
end
def
serialize
(
value
)
super
end
end
else
class
LockingType
<
SimpleDelegator
class
LockingType
<
SimpleDelegator
def
type_cast_from_database
(
value
)
def
type_cast_from_database
(
value
)
super
super
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment