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
b31d0afe
Commit
b31d0afe
authored
Mar 21, 2022
by
Douglas Barbosa Alexandre
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Geo migrations settings are included by default
Changelog: changed EE: true
parent
61d93f77
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
558 additions
and
24 deletions
+558
-24
config/application.rb
config/application.rb
+9
-8
ee/spec/lib/gitlab/patch/database_config_spec.rb
ee/spec/lib/gitlab/patch/database_config_spec.rb
+522
-0
lib/gitlab/patch/database_config.rb
lib/gitlab/patch/database_config.rb
+26
-15
spec/lib/gitlab/patch/database_config_spec.rb
spec/lib/gitlab/patch/database_config_spec.rb
+1
-1
No files found.
config/application.rb
View file @
b31d0afe
...
...
@@ -69,18 +69,19 @@ module Gitlab
require_dependency
Rails
.
root
.
join
(
'lib/gitlab/middleware/handle_malformed_strings'
)
require_dependency
Rails
.
root
.
join
(
'lib/gitlab/middleware/rack_multipart_tempfile_factory'
)
require_dependency
Rails
.
root
.
join
(
'lib/gitlab/runtime'
)
require_dependency
Rails
.
root
.
join
(
'lib/gitlab/patch/
legacy_
database_config'
)
require_dependency
Rails
.
root
.
join
(
'lib/gitlab/patch/database_config'
)
require_dependency
Rails
.
root
.
join
(
'lib/gitlab/exceptions_app'
)
config
.
exceptions_app
=
Gitlab
::
ExceptionsApp
.
new
(
Rails
.
public_path
)
# To be removed in 15.0
# This preload is needed to convert legacy `database.yml`
# from `production: adapter: postgresql`
# into a `production: main: adapter: postgresql`
unless
Gitlab
::
Utils
.
to_boolean
(
ENV
[
'SKIP_DATABASE_CONFIG_VALIDATION'
],
default:
false
)
config
.
class
.
prepend
(
::
Gitlab
::
Patch
::
LegacyDatabaseConfig
)
end
# This preload is required to:
#
# 1. Convert legacy `database.yml`;
# 2. Include Geo post-deployment migrations settings;
#
# TODO: In 15.0, this preload can be wrapped in a Gitlab.ee block
# since we don't need to convert legacy `database.yml` anymore.
config
.
class
.
prepend
(
::
Gitlab
::
Patch
::
DatabaseConfig
)
# Settings in config/environments/* take precedence over those specified here.
# Application configuration should go into files in config/initializers
...
...
ee/spec/lib/gitlab/patch/
legacy_
database_config_spec.rb
→
ee/spec/lib/gitlab/patch/database_config_spec.rb
View file @
b31d0afe
This diff is collapsed.
Click to expand it.
lib/gitlab/patch/
legacy_
database_config.rb
→
lib/gitlab/patch/database_config.rb
View file @
b31d0afe
...
...
@@ -28,7 +28,7 @@
module
Gitlab
module
Patch
module
Legacy
DatabaseConfig
module
DatabaseConfig
extend
ActiveSupport
::
Concern
prepended
do
...
...
@@ -73,23 +73,34 @@ module Gitlab
@uses_legacy_database_config
=
false
# rubocop:disable Gitlab/ModuleWithInstanceVariables
super
.
to_h
do
|
env
,
configs
|
# This check is taken from Rails where the transformation
# of a flat database.yml is done into `primary:`
# https://github.com/rails/rails/blob/v6.1.4/activerecord/lib/active_record/database_configurations.rb#L169
if
configs
.
is_a?
(
Hash
)
&&
!
configs
.
all?
{
|
_
,
v
|
v
.
is_a?
(
Hash
)
}
configs
=
{
"main"
=>
configs
}
@uses_legacy_database_config
=
true
# rubocop:disable Gitlab/ModuleWithInstanceVariables
# TODO: To be removed in 15.0. See https://gitlab.com/gitlab-org/gitlab/-/issues/338182
# This preload is needed to convert legacy `database.yml`
# from `production: adapter: postgresql`
# into a `production: main: adapter: postgresql`
unless
Gitlab
::
Utils
.
to_boolean
(
ENV
[
'SKIP_DATABASE_CONFIG_VALIDATION'
],
default:
false
)
# This check is taken from Rails where the transformation
# of a flat database.yml is done into `primary:`
# https://github.com/rails/rails/blob/v6.1.4/activerecord/lib/active_record/database_configurations.rb#L169
if
configs
.
is_a?
(
Hash
)
&&
!
configs
.
all?
{
|
_
,
v
|
v
.
is_a?
(
Hash
)
}
configs
=
{
"main"
=>
configs
}
@uses_legacy_database_config
=
true
# rubocop:disable Gitlab/ModuleWithInstanceVariables
end
end
if
Gitlab
.
ee?
&&
File
.
exist?
(
Rails
.
root
.
join
(
"config/database_geo.yml"
))
migrations_paths
=
[
"ee/db/geo/migrate"
]
migrations_paths
<<
"ee/db/geo/post_migrate"
unless
ENV
[
'SKIP_POST_DEPLOYMENT_MIGRATIONS'
]
if
Gitlab
.
ee?
if
!
configs
.
key?
(
"geo"
)
&&
File
.
exist?
(
Rails
.
root
.
join
(
"config/database_geo.yml"
))
configs
[
"geo"
]
=
Rails
.
application
.
config_for
(
:database_geo
).
stringify_keys
end
if
configs
.
key?
(
"geo"
)
migrations_paths
=
Array
(
configs
[
"geo"
][
"migrations_paths"
])
migrations_paths
<<
"ee/db/geo/migrate"
if
migrations_paths
.
empty?
migrations_paths
<<
"ee/db/geo/post_migrate"
unless
ENV
[
'SKIP_POST_DEPLOYMENT_MIGRATIONS'
]
configs
[
"geo"
]
=
Rails
.
application
.
config_for
(
:database_geo
)
.
merge
(
migrations_paths:
migrations_paths
,
schema_migrations_path:
"ee/db/geo/schema_migrations"
)
.
stringify_keys
configs
[
"geo"
][
"migrations_paths"
]
=
migrations_paths
.
uniq
configs
[
"geo"
][
"schema_migrations_path"
]
=
"ee/db/geo/schema_migrations"
if
configs
[
"geo"
][
"schema_migrations_path"
].
blank?
end
end
[
env
,
configs
]
...
...
spec/lib/gitlab/patch/
legacy_
database_config_spec.rb
→
spec/lib/gitlab/patch/database_config_spec.rb
View file @
b31d0afe
...
...
@@ -2,7 +2,7 @@
require
'spec_helper'
RSpec
.
describe
Gitlab
::
Patch
::
Legacy
DatabaseConfig
do
RSpec
.
describe
Gitlab
::
Patch
::
DatabaseConfig
do
it
'module is included'
do
expect
(
Rails
::
Application
::
Configuration
).
to
include
(
described_class
)
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