summaryrefslogtreecommitdiff
path: root/db
Commit message (Collapse)AuthorAgeFilesLines
* Introduce source to pipeline entitytrigger-sourceKamil Trzcinski2017-05-314-3/+13
|
* Merge branch ↵Robert Speicher2017-05-2910-9/+10
|\ | | | | | | | | | | | | | | | | '32677-migrations-using-update_column_in_batches-must-have-a-spec' into 'master' New Migration/UpdateColumnInBatches cop Closes #32677 See merge request !11611
| * Disable Migration/UpdateColumnInBatches for old migrations32677-migrations-using-update_column_in_batches-must-have-a-specRémy Coutable2017-05-2910-9/+10
| | | | | | | | Signed-off-by: Rémy Coutable <remy@rymai.me>
* | Merge branch 'rework-authorizations-performance' into 'master'Douwe Maan2017-05-295-1/+203
|\ \ | |/ |/| | | | | Rework project authorizations and nested groups for better performance See merge request !10885
| * Index project_group_links.group_idYorick Peterse2017-05-172-0/+21
| | | | | | | | | | This column is used when refreshing authorizations and without the index leads to a sequence scan being performed on this table.
| * Convert nested groups to regular ones for MySQLYorick Peterse2017-05-171-0/+123
| | | | | | | | | | | | | | | | This migration will take all nested groups and convert them into regular groups, ensuring that members of any parent groups still have access to the child group. This migration relies on code external to it as copying all of this over involves hundreds of lines of code depending on all sorts of methods, making this practically impossible to do right.
| * Use CTEs for nested groups and authorizationsYorick Peterse2017-05-173-1/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit introduces the usage of Common Table Expressions (CTEs) to efficiently retrieve nested group hierarchies, without having to rely on the "routes" table (which is an _incredibly_ inefficient way of getting the data). This requires a patch to ActiveRecord (found in the added initializer) to work properly as ActiveRecord doesn't support WITH statements properly out of the box. Unfortunately MySQL provides no efficient way of getting nested groups. For example, the old routes setup could easily take 5-10 seconds depending on the amount of "routes" in a database. Providing vastly different logic for both MySQL and PostgreSQL will negatively impact the development process. Because of this the various nested groups related methods return empty relations when used in combination with MySQL. For project authorizations the logic is split up into two classes: * Gitlab::ProjectAuthorizations::WithNestedGroups * Gitlab::ProjectAuthorizations::WithoutNestedGroups Both classes get the fresh project authorizations (= as they should be in the "project_authorizations" table), including nested groups if PostgreSQL is used. The logic of these two classes is quite different apart from their public interface. This complicates development a bit, but unfortunately there is no way around this. This commit also introduces Gitlab::GroupHierarchy. This class can be used to get the ancestors and descendants of a base relation, or both by using a UNION. This in turn is used by methods such as: * Namespace#ancestors * Namespace#descendants * User#all_expanded_groups Again this class relies on CTEs and thus only works on PostgreSQL. The Namespace methods will return an empty relation when MySQL is used, while User#all_expanded_groups will return only the groups a user is a direct member of. Performance wise the impact is quite large. For example, on GitLab.com Namespace#descendants used to take around 580 ms to retrieve data for a particular user. Using CTEs we are able to reduce this down to roughly 1 millisecond, returning the exact same data. == On The Fly Refreshing Refreshing of authorizations on the fly (= when users.authorized_projects_populated was not set) is removed with this commit. This simplifies the code, and ensures any queries used for authorizations are not mutated because they are executed in a Rails scope (e.g. Project.visible_to_user). This commit includes a migration to schedule refreshing authorizations for all users, ensuring all of them have their authorizations in place. Said migration schedules users in batches of 5000, with 5 minutes between every batch to smear the load around a bit. == Spec Changes This commit also introduces some changes to various specs. For example, some specs for ProjectTeam assumed that creating a personal project would _not_ lead to the owner having access, which is incorrect. Because we also no longer refresh authorizations on the fly for new users some code had to be added to the "empty_project" factory. This chunk of code ensures that the owner's permissions are refreshed after creating the project, something that is normally done in Projects::CreateService.
* | Merge branch '32851-fix-postgres-9-1' into 'master'Douwe Maan2017-05-253-13/+5
|\ \ | | | | | | | | | | | | Resolve "GitLab 9.0 to 9.2 is incompatible with PostgreSQL 9.1" See merge request !11709
| * | Only use DROP INDEX CONCURRENTLY on postgreql 9.2+Nick Thomas2017-05-253-13/+5
| | |
* | | Merge branch '17848-web-hook-logging' into 'master'Dmitriy Zaporozhets2017-05-252-0/+40
|\ \ \ | |/ / |/| | | | | | | | | | | | | | Implement Web Hooks calls logging Closes #17848 See merge request !11027
| * | Implement web hooks loggingAlexander Randa2017-05-252-0/+40
| | | | | | | | | | | | | | | | | | | | | | | | * implemented logging of project and system web hooks * implemented UI for user area (project hooks) * implemented UI for admin area (system hooks) * implemented retry of logged webhook * NOT imeplemented log remover
* | | add rss_token attribute to user modelAlexis Reigel2017-05-242-1/+22
| | |
* | | Address reviewDouwe Maan2017-05-241-18/+0
| | |
* | | Add system note with link to diff comparison when MR discussion becomes outdatedDouwe Maan2017-05-232-1/+33
| | |
* | | Fix migrations for older PostgreSQL versionsfix-retried-for-postgresKamil Trzcinski2017-05-231-4/+6
| | | | | | | | | | | | | | | - Do not care about error when creating index on PostgreSQL - Test against PostgreSQL 9.2
* | | Fixes broken MySQL migration for retriedKamil Trzcinski2017-05-221-3/+26
| | | | | | | | | | | | | | | | | | > Mysql2::Error: Table 'ci_builds' is specified twice, both as a target for 'UPDATE' and as a separate source for data: UPDATE `ci_builds` SET `retried` = ((SELECT MAX(ci_builds2.id) Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/32647
* | | Merge branch 'bvl-fix-already-renamed-paths' into 'master'Douwe Maan2017-05-193-1/+155
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Fix incorrect renaming migrations Closes #32526 and #32530 See merge request !11515
| * | | Rename users on mysqlbvl-fix-already-renamed-pathsBob Van Landuyt2017-05-191-4/+15
| | | |
| * | | Don't try to rename `-`Bob Van Landuyt2017-05-191-1/+0
| | | |
| * | | Simpler way of renaming usersBob Van Landuyt2017-05-191-9/+6
| | | |
| * | | Fix incorrectly renamed routesBob Van Landuyt2017-05-192-1/+105
| | | |
| * | | Rename users that had their namespace renamedBob Van Landuyt2017-05-192-1/+44
| | | |
* | | | Add temporary partial index to speed up the migrationupdate-retried-migrationLin Jen-Shin2017-05-191-14/+28
|/ / / | | | | | | | | | Closes #32469
* | | Adding NULL:false constraint with change_column_null instead of change_columnfix_set_null_false_migrationValery Sizov2017-05-181-4/+4
| | |
* | | Merge branch 'fix-issue-assignee-trigger' into 'master'Stan Hu2017-05-171-1/+1
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Check if OLD is set when migrating issue assignees Closes #32439 See merge request !11461
| * | | Check if OLD is set when migrating issue assigneesYorick Peterse2017-05-171-1/+1
| |/ / | | | | | | | | | | | | | | | The procedure for migrating issue assignees is invoked on both an INSERT and UPDATE. This means it will fail for INSERTs because OLD is set to NULL in this case.
* | | Fix data migration from trigger schedulesZ.J. van de Weg2017-05-171-0/+7
|/ /
* | Improve migration for Multipple issue assignee featureValery Sizov2017-05-167-52/+204
| |
* | Merge branch 'bvl-rename-build-events-to-job-events' into 'master' cherry-pick-0663458cDouwe Maan2017-05-165-3/+75
| | | | | | | | | | | | | | Rename `build_events` to `job_events` Closes #31620 See merge request !11287
* | Merge branch 'zj-pipeline-schedule-owner' into 'master' Kamil Trzciński2017-05-162-1/+37
|\ \ | | | | | | | | | | | | | | | | | | Foreign key for Pipeline schedule owner Closes #31932 See merge request !11233
| * | Add foreign key on pipeline_schedules.owner_idzj-pipeline-schedule-ownerZ.J. van de Weg2017-05-152-1/+37
| |/ | | | | | | | | | | Set to nullify, so the settings remain if the user is deleted. Fixes gitlab-org/gitlab-ce#31932
* | Revert "Merge branch 'bvl-rename-build-events-to-job-events' into 'master'"Douwe Maan2017-05-155-75/+3
| | | | | | This reverts merge request !11287
* | Merge branch 'bvl-rename-build-events-to-job-events' into 'master' Douwe Maan2017-05-155-3/+75
|\ \ | | | | | | | | | | | | | | | | | | Rename `build_events` to `job_events` Closes #31620 See merge request !11287
| * | Rename `build_events` columns to `job_events`Bob Van Landuyt2017-05-155-3/+75
| |/
* | Merge branch 'enable-auto-cancelling-by-default' into 'master' Kamil Trzciński2017-05-153-1/+29
|\ \ | | | | | | | | | | | | | | | | | | Make auto-cancelling pending pipelines on by default Closes #30656 See merge request !11023
| * | Disable transaction for updating the tableLin Jen-Shin2017-05-151-0/+2
| | |
| * | Move to post_migrate and use update_column_in_batchesLin Jen-Shin2017-05-151-2/+1
| | |
| * | Make auto-cancelling pending pipelines on by defaultLin Jen-Shin2017-05-153-1/+28
| |/
* | Add missing newline in schemaLin Jen-Shin2017-05-151-1/+1
| |
* | Merge remote-tracking branch 'upstream/master' into ↵Lin Jen-Shin2017-05-159-5/+144
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | add-index-for-auto_canceled_by_id-mysql * upstream/master: (224 commits) Added balsamiq jasmine integration test Add support for deltas_only under Gitaly Codestyle Update CHANGELOG.md for 9.1.4 Update CHANGELOG.md for 9.1.4 Update CHANGELOG.md for 9.1.4 Update CHANGELOG.md for 9.1.4 Minor cosmetic fixes in hooks admin screen Documentation for repository_update_events Changelog Update SystemHooks API to expose and handle new repository_update_events Make the new repository_update_events configurable in System Hooks UI Added repository_update hook Wait for requests after each Spinach scenario instead of feature Remove trailing comma in dependency linker to satisfy Rubocop Fix specs New branch new mr docs Relax rake backup regex to handle CE and EE RCs Fix conflict resolution from corrupted upstream Removed all instances of Object.assign by using es6 classes, also includes some … ...
| * Added repository_update hookGabriel Mazetto2017-05-122-0/+16
| |
| * Merge branch 'zj-clean-up-ci-variables-table' into 'master' Yorick Peterse2017-05-113-3/+40
| |\ | | | | | | | | | | | | | | | | | | Clean up ci variables table Closes #31799 See merge request !11186
| | * Remove rails dependent: :destroy statementZ.J. van de Weg2017-05-111-1/+0
| | | | | | | | | | | | | | | | | | | | | Enforced by the database, and no callbacks need to be called. Combined with 7b9b2c6099 and 294a8b8a6d this resolves gitlab-org/gitlab-ce#31799
| | * Add a foreign key to ci_variables to projectsZ.J. van de Weg2017-05-113-3/+29
| | | | | | | | | | | | | | | Variables shouldn't exist without a project, so a foreign key was added with CASCADE'ing effects.
| | * Prevent NULL values on ci_variables columnsZ.J. van de Weg2017-05-111-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To be more specific; key, and project_id. If either of these is NULL its wrong, because: 1. storing a key value pair without key is just plain wrong 2. all variables should belong to a project Non of these cases existed on the staging database.
| * | Fix MySQL build failuredm-fix-mysql-failureDouwe Maan2017-05-101-1/+1
| |/
| * Merge branch 'retried-in-database-mysql' into 'master' Regis Boudinot2017-05-103-0/+39
| |\ | | | | | | | | | | | | | | | | | | Retried in database Closes #25737 See merge request !11115
| | * Make retried to be nullableKamil Trzcinski2017-05-093-10/+4
| | |
| | * Store retried in database for CI buildsretried-in-database-mysqlKamil Trzcinski2017-05-073-0/+45
| | |
| * | Merge branch '27144-enforce-rubocop-trailing_commas-no_comma-style' into ↵Robert Speicher2017-05-102-2/+2
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'master' Resolve "Use consistent style for trailing commas" Closes #27144 See merge request !11063