Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
heptapod
heptapod
Commits
84cca0c20391
Unverified
Commit
6735e1dc
authored
Aug 11, 2017
by
Yorick Peterse
Browse files
Document how to handle different DB (versions)
parent
b0a10a45f6fe
Changes
2
Hide whitespace changes
Inline
Side-by-side
doc/development/README.md
View file @
84cca0c2
...
...
@@ -58,6 +58,7 @@
-
[
Storing SHA1 Hashes As Binary
](
sha1_as_binary.md
)
-
[
Iterating Tables In Batches
](
iterating_tables_in_batches.md
)
-
[
Ordering Table Columns
](
ordering_table_columns.md
)
-
[
Verifying Database Capabilities
](
verifying_database_capabilities.md
)
## i18n
...
...
doc/development/verifying_database_capabilities.md
0 → 100644
View file @
84cca0c2
# Verifying Database Capabilities
Sometimes certain bits of code may only work on a certain database and/or
version. While we try to avoid such code as much as possible sometimes it is
necessary to add database (version) specific behaviour.
To facilitate this we have the following methods that you can use:
*
`Gitlab::Database.postgresql?`
: returns
`true`
if PostgreSQL is being used
*
`Gitlab::Database.mysql?`
: returns
`true`
if MySQL is being used
*
`Gitlab::Database.version`
: returns the PostgreSQL version number as a string
in the format
`X.Y.Z`
. This method does not work for MySQL
This allows you to write code such as:
```
ruby
if
Gitlab
::
Database
.
postgresql?
if
Gitlab
::
Database
.
version
.
to_f
>=
9.6
run_really_fast_query
else
run_fast_query
end
else
run_query
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