Document how to handle different DB (versions)
This commit is contained in:
parent
39c5be7a13
commit
6735e1dc9a
2 changed files with 27 additions and 0 deletions
|
@ -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
|
||||
|
||||
|
|
26
doc/development/verifying_database_capabilities.md
Normal file
26
doc/development/verifying_database_capabilities.md
Normal file
|
@ -0,0 +1,26 @@
|
|||
# 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
|
||||
```
|
Loading…
Reference in a new issue