Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
be1ea40ec4
commit
09237b02b5
4 changed files with 49 additions and 1 deletions
17
config/initializers/0_postgresql_types.rb
Normal file
17
config/initializers/0_postgresql_types.rb
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
# As discussed in https://github.com/rails/rails/issues/40687, this
|
||||||
|
# patch registers a few types to silence warnings when Rails comes
|
||||||
|
# across some PostgreSQL types it does not recognize.
|
||||||
|
module PostgreSQLAdapterCustomTypes
|
||||||
|
def initialize_type_map(m = type_map) # rubocop:disable Naming/MethodParameterName
|
||||||
|
m.register_type('xid', ActiveRecord::Type::Integer.new(limit: 8))
|
||||||
|
m.register_type('pg_node_tree', ActiveRecord::Type::String.new)
|
||||||
|
m.register_type('_aclitem', ActiveRecord::Type::String.new)
|
||||||
|
m.register_type('pg_lsn', ActiveRecord::Type::String.new)
|
||||||
|
|
||||||
|
super
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.prepend(PostgreSQLAdapterCustomTypes)
|
|
@ -312,3 +312,16 @@ def down
|
||||||
remove_concurrent_index_by_name :ci_builds, INDEX_NAME
|
remove_concurrent_index_by_name :ci_builds, INDEX_NAME
|
||||||
end
|
end
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Test database index changes locally
|
||||||
|
|
||||||
|
You must test the database index changes locally before creating a merge request.
|
||||||
|
|
||||||
|
### Verify indexes created asynchronously
|
||||||
|
|
||||||
|
Use the asynchronous index helpers on your local environment to test changes for creating an index:
|
||||||
|
|
||||||
|
1. Enable the feature flags by running `Feature.enable(:database_async_index_creation)` and `Feature.enable(:database_reindexing)` in the Rails console.
|
||||||
|
1. Run `bundle exec rails db:migrate` so that it creates an entry in the `postgres_async_indexes` table.
|
||||||
|
1. Run `bundle exec rails gitlab:db:reindex` so that the index is created asynchronously.
|
||||||
|
1. To verify the index, open the PostgreSQL console using the [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/howto/postgresql.md) command `gdk psql` and run the command `\d <index_name>` to check that your newly created index exists.
|
||||||
|
|
|
@ -58,7 +58,9 @@ For the bot:
|
||||||
|
|
||||||
- The name is set to the name of the token.
|
- The name is set to the name of the token.
|
||||||
- The username is set to `project_{project_id}_bot` for the first access token, such as `project_123_bot`.
|
- The username is set to `project_{project_id}_bot` for the first access token, such as `project_123_bot`.
|
||||||
- The username is set to `project_{project_id}_bot{bot_count}` for further access tokens, such as `project_123_bot1`.
|
- The email is set to `project{project_id}_bot@example.com`, for example `project123_bot@example.com`.
|
||||||
|
- For additional access tokens in the same project, the username is set to `project_{project_id}_bot{bot_count}`, for example `project_123_bot1`.
|
||||||
|
- For additional acess tokens in the same project, the email is set to `project{project_id}_bot{bot_count}@example.com`, for example `project123_bot1@example.com`
|
||||||
|
|
||||||
API calls made with a project access token are associated with the corresponding bot user.
|
API calls made with a project access token are associated with the corresponding bot user.
|
||||||
|
|
||||||
|
|
16
spec/initializers/0_postgresql_types_spec.rb
Normal file
16
spec/initializers/0_postgresql_types_spec.rb
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
RSpec.describe 'PostgreSQL registered types' do
|
||||||
|
subject(:types) { ApplicationRecord.connection.send(:type_map).keys }
|
||||||
|
|
||||||
|
# These can be obtained via SELECT oid, typname from pg_type
|
||||||
|
it 'includes custom and standard OIDs' do
|
||||||
|
expect(types).to include(28, 194, 1034, 3220, 23, 20)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'includes custom and standard types' do
|
||||||
|
expect(types).to include('xid', 'pg_node_tree', '_aclitem', 'pg_lsn', 'int4', 'int8')
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue