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
60747672
Commit
60747672
authored
Sep 12, 2018
by
DJ Mountney
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix the schema load test
And added changelog
parent
76cfe4f1
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
20 additions
and
11 deletions
+20
-11
changelogs/unreleased/force-post-migration-dir-schema-load.yml
...elogs/unreleased/force-post-migration-dir-schema-load.yml
+5
-0
spec/tasks/gitlab/db_rake_spec.rb
spec/tasks/gitlab/db_rake_spec.rb
+15
-11
No files found.
changelogs/unreleased/force-post-migration-dir-schema-load.yml
0 → 100644
View file @
60747672
---
title
:
Ensure the schema is loaded with post_migrations included
merge_request
:
author
:
type
:
changed
spec/tasks/gitlab/db_rake_spec.rb
View file @
60747672
...
@@ -63,31 +63,35 @@ describe 'gitlab:db namespace rake task' do
...
@@ -63,31 +63,35 @@ describe 'gitlab:db namespace rake task' do
end
end
context
'SKIP_POST_DEPLOYMENT_MIGRATIONS environment variable set'
do
context
'SKIP_POST_DEPLOYMENT_MIGRATIONS environment variable set'
do
let
:migrations_paths
do
let
(
:rails_paths
)
{
{
'db'
=>
[
'db'
],
'db/migrate'
=>
[
'db/migrate'
]
}
}
root
=
Rails
::
Paths
::
Root
.
new
(
Rails
.
root
)
root
.
add
(
'db/migrate'
)
end
before
do
before
do
allow
(
ENV
).
to
receive
(
:[]
).
and_call_original
allow
(
ENV
).
to
receive
(
:[]
).
and_call_original
allow
(
ENV
).
to
receive
(
:[]
).
with
(
'SKIP_POST_DEPLOYMENT_MIGRATIONS'
).
and_return
true
allow
(
ENV
).
to
receive
(
:[]
).
with
(
'SKIP_POST_DEPLOYMENT_MIGRATIONS'
).
and_return
true
# Our environment has already been loaded, so we need to pretent like post_migrations were not
# Our environment has already been loaded, so we need to pretend like post_migrations were not
allow
(
Rails
.
application
.
config
.
paths
).
to
receive
(
:[]
).
and_call_original
allow
(
Rails
.
application
.
config
).
to
receive
(
:paths
).
and_return
(
rails_paths
)
allow
(
Rails
.
application
.
config
.
paths
).
to
receive
(
:[]
).
with
(
'db/migrate'
).
and_return
(
migrations_paths
)
allow
(
ActiveRecord
::
Migrator
).
to
receive
(
:migrations_paths
).
and_return
(
rails_paths
[
'db/migrate'
].
dup
)
allow
(
ActiveRecord
::
Migrator
).
to
receive
(
:migrations_paths
).
and_return
(
migrations_paths
)
end
end
it
'adds post deployment migrations before schema load if the schema is not already loaded'
do
it
'adds post deployment migrations before schema load if the schema is not already loaded'
do
allow
(
ActiveRecord
::
Base
.
connection
).
to
receive
(
:tables
).
and_return
([])
allow
(
ActiveRecord
::
Base
.
connection
).
to
receive
(
:tables
).
and_return
([])
expect
(
Gitlab
::
Database
).
to
receive
(
:add_post_migrate_path_to_rails
)
expect
(
Gitlab
::
Database
).
to
receive
(
:add_post_migrate_path_to_rails
)
.
and_call_original
expect
(
Rake
::
Task
[
'db:schema:load'
]).
to
receive
(
:invoke
)
expect
(
Rake
::
Task
[
'db:schema:load'
]).
to
receive
(
:invoke
)
expect
(
Rake
::
Task
[
'db:seed_fu'
]).
to
receive
(
:invoke
)
expect
(
Rake
::
Task
[
'db:seed_fu'
]).
to
receive
(
:invoke
)
expect
(
Rake
::
Task
[
'db:migrate'
]).
not_to
receive
(
:invoke
)
expect
(
Rake
::
Task
[
'db:migrate'
]).
not_to
receive
(
:invoke
)
expect
(
Rails
.
application
.
config
.
paths
).
to
receive
(
:[]
).
with
(
'db/migrate'
)
expect
{
run_rake_task
(
'gitlab:db:configure'
)
}.
not_to
raise_error
expect
{
run_rake_task
(
'gitlab:db:configure'
)
}.
not_to
raise_error
expect
(
rails_paths
[
'db/migrate'
].
include?
(
File
.
join
(
Rails
.
root
,
'db'
,
'post_migrate'
))).
to
be
(
true
)
end
expect
(
migrations_paths
.
include?
(
File
.
join
(
Rails
.
root
,
'db'
,
'post_migrate'
))).
to
be
(
true
)
it
'ignores post deployment migrations when schema has already been loaded'
do
allow
(
ActiveRecord
::
Base
.
connection
).
to
receive
(
:tables
).
and_return
(
%w[table1 table2]
)
expect
(
Rake
::
Task
[
'db:migrate'
]).
to
receive
(
:invoke
)
expect
(
Gitlab
::
Database
).
not_to
receive
(
:add_post_migrate_path_to_rails
)
expect
(
Rake
::
Task
[
'db:schema:load'
]).
not_to
receive
(
:invoke
)
expect
(
Rake
::
Task
[
'db:seed_fu'
]).
not_to
receive
(
:invoke
)
expect
{
run_rake_task
(
'gitlab:db:configure'
)
}.
not_to
raise_error
expect
(
rails_paths
[
'db/migrate'
].
include?
(
File
.
join
(
Rails
.
root
,
'db'
,
'post_migrate'
))).
to
be
(
false
)
end
end
end
end
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