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
1
Merge Requests
1
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
nexedi
gitlab-ce
Commits
beb29b0a
Commit
beb29b0a
authored
Jan 27, 2020
by
Jarka Košanová
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove invalid data from issue_tracker_data table
- removing is the first step, reinserting the second
parent
01d0d503
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
89 additions
and
1 deletion
+89
-1
changelogs/unreleased/198938-fix-invalid-issue-tracker-data.yml
...logs/unreleased/198938-fix-invalid-issue-tracker-data.yml
+5
-0
db/post_migrate/20200127090233_remove_invalid_issue_tracker_data.rb
...grate/20200127090233_remove_invalid_issue_tracker_data.rb
+24
-0
db/schema.rb
db/schema.rb
+1
-1
spec/migrations/20200127090233_remove_invalid_issue_tracker_data_spec.rb
.../20200127090233_remove_invalid_issue_tracker_data_spec.rb
+59
-0
No files found.
changelogs/unreleased/198938-fix-invalid-issue-tracker-data.yml
0 → 100644
View file @
beb29b0a
---
title
:
Remove invalid data from issue_tracker_data table
merge_request
:
author
:
type
:
fixed
db/post_migrate/20200127090233_remove_invalid_issue_tracker_data.rb
0 → 100644
View file @
beb29b0a
# frozen_string_literal: true
# See http://doc.gitlab.com/ce/development/migration_style_guide.html
# for more information on how to write migrations for GitLab.
class
RemoveInvalidIssueTrackerData
<
ActiveRecord
::
Migration
[
5.2
]
include
Gitlab
::
Database
::
MigrationHelpers
DOWNTIME
=
false
def
up
sql
=
"DELETE FROM issue_tracker_data WHERE \
(length(encrypted_issues_url) > 0 AND encrypted_issues_url_iv IS NULL) \
OR (length(encrypted_new_issue_url) > 0 AND encrypted_new_issue_url_iv IS NULL) \
OR (length(encrypted_project_url) > 0 AND encrypted_project_url_iv IS NULL)"
execute
(
sql
)
end
def
down
# We need to figure out why migrating data to issue_tracker_data table
# failed and then can recreate the data
end
end
db/schema.rb
View file @
beb29b0a
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
#
#
# It's strongly recommended that you check this file into your version control system.
# It's strongly recommended that you check this file into your version control system.
ActiveRecord
::
Schema
.
define
(
version:
2020_01_2
4_053531
)
do
ActiveRecord
::
Schema
.
define
(
version:
2020_01_2
7_090233
)
do
# These are extensions that must be enabled in order to support this database
# These are extensions that must be enabled in order to support this database
enable_extension
"pg_trgm"
enable_extension
"pg_trgm"
...
...
spec/migrations/20200127090233_remove_invalid_issue_tracker_data_spec.rb
0 → 100644
View file @
beb29b0a
# frozen_string_literal: true
require
'spec_helper'
require
Rails
.
root
.
join
(
'db'
,
'post_migrate'
,
'20200127090233_remove_invalid_issue_tracker_data.rb'
)
describe
RemoveInvalidIssueTrackerData
,
:migration
do
let
(
:issue_tracker_data
)
{
table
(
:issue_tracker_data
)
}
let
(
:services
)
{
table
(
:services
)
}
let
(
:service
)
{
services
.
create
(
id:
1
)
}
let
(
:data
)
do
{
service_id:
service
.
id
,
encrypted_issues_url:
'http:url.com'
,
encrypted_issues_url_iv:
'somevalue'
,
encrypted_new_issue_url:
'http:url.com'
,
encrypted_new_issue_url_iv:
'somevalue'
,
encrypted_project_url:
'username'
,
encrypted_project_url_iv:
'somevalue'
}
end
let!
(
:valid_data
)
{
issue_tracker_data
.
create
(
data
)
}
let!
(
:empty_data
)
{
issue_tracker_data
.
create
(
service_id:
service
.
id
)
}
let!
(
:invalid_issues_url
)
do
data
[
:encrypted_issues_url_iv
]
=
nil
issue_tracker_data
.
create
(
data
)
end
let!
(
:missing_issues_url
)
do
data
[
:encrypted_issues_url
]
=
''
data
[
:encrypted_issues_url_iv
]
=
nil
issue_tracker_data
.
create
(
data
)
end
let!
(
:invalid_new_isue_url
)
do
data
[
:encrypted_new_issue_url_iv
]
=
nil
issue_tracker_data
.
create
(
data
)
end
let!
(
:missing_new_issue_url
)
do
data
[
:encrypted_new_issue_url
]
=
''
issue_tracker_data
.
create
(
data
)
end
let!
(
:invalid_project_url
)
do
data
[
:encrypted_project_url_iv
]
=
nil
issue_tracker_data
.
create
(
data
)
end
let!
(
:missing_project_url
)
do
data
[
:encrypted_project_url
]
=
nil
data
[
:encrypted_project_url_iv
]
=
nil
issue_tracker_data
.
create
(
data
)
end
it
'removes the invalid data'
do
valid_data_records
=
[
valid_data
,
empty_data
,
missing_issues_url
,
missing_new_issue_url
,
missing_project_url
]
expect
{
migrate!
}.
to
change
{
issue_tracker_data
.
count
}.
from
(
8
).
to
(
5
)
expect
(
issue_tracker_data
.
all
).
to
match_array
(
valid_data_records
)
end
end
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