diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-11-05 18:08:34 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-11-05 18:08:34 +0000 |
commit | 2baa63e740214382387abe77eeea6c0b1759e621 (patch) | |
tree | 802d3d0c8622fae149053ab8b8acbce99554d35c /db | |
parent | 4c464055fbcdab02bb8334b148c0e35b981b239e (diff) | |
download | gitlab-ce-2baa63e740214382387abe77eeea6c0b1759e621.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'db')
4 files changed, 95 insertions, 0 deletions
diff --git a/db/migrate/20190910211526_create_packages_conan_file_metadata.rb b/db/migrate/20190910211526_create_packages_conan_file_metadata.rb new file mode 100644 index 00000000000..0f8dacb72de --- /dev/null +++ b/db/migrate/20190910211526_create_packages_conan_file_metadata.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class CreatePackagesConanFileMetadata < ActiveRecord::Migration[5.2] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def change + create_table :packages_conan_file_metadata do |t| + t.references :package_file, index: { unique: true }, null: false, foreign_key: { to_table: :packages_package_files, on_delete: :cascade }, type: :bigint + t.timestamps_with_timezone + t.string "recipe_revision", null: false, default: "0", limit: 255 + t.string "package_revision", limit: 255 + t.string "conan_package_reference", limit: 255 + t.integer "conan_file_type", limit: 2, null: false + end + end +end diff --git a/db/migrate/20191029125305_create_packages_conan_metadata.rb b/db/migrate/20191029125305_create_packages_conan_metadata.rb new file mode 100644 index 00000000000..c6abc509e41 --- /dev/null +++ b/db/migrate/20191029125305_create_packages_conan_metadata.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +class CreatePackagesConanMetadata < ActiveRecord::Migration[5.2] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def change + create_table :packages_conan_metadata do |t| + t.references :package, index: { unique: true }, null: false, foreign_key: { to_table: :packages_packages, on_delete: :cascade }, type: :bigint + t.timestamps_with_timezone + t.string "package_username", null: false, limit: 255 + t.string "package_channel", null: false, limit: 255 + end + end +end diff --git a/db/post_migrate/20191022113635_nullify_feature_flag_plaintext_tokens.rb b/db/post_migrate/20191022113635_nullify_feature_flag_plaintext_tokens.rb new file mode 100644 index 00000000000..9ade1454844 --- /dev/null +++ b/db/post_migrate/20191022113635_nullify_feature_flag_plaintext_tokens.rb @@ -0,0 +1,39 @@ +# frozen_string_literal: true + +class NullifyFeatureFlagPlaintextTokens < ActiveRecord::Migration[5.2] + DOWNTIME = false + + class FeatureFlagsClient < ActiveRecord::Base + include EachBatch + + self.table_name = 'operations_feature_flags_clients' + + scope :with_encrypted_token, -> { where.not(token_encrypted: nil) } + scope :with_plaintext_token, -> { where.not(token: nil) } + scope :without_plaintext_token, -> { where(token: nil) } + end + + disable_ddl_transaction! + + def up + return unless Gitlab.ee? + + # 7357 records to be updated on GitLab.com + FeatureFlagsClient.with_encrypted_token.with_plaintext_token.each_batch do |relation| + relation.update_all(token: nil) + end + end + + def down + return unless Gitlab.ee? + + # There is no way to restore only the tokens that were NULLifyed in the `up` + # but we can do is to restore _all_ of them in case it is needed. + say_with_time('Decrypting tokens from operations_feature_flags_clients') do + FeatureFlagsClient.with_encrypted_token.without_plaintext_token.find_each do |feature_flags_client| + token = Gitlab::CryptoHelper.aes256_gcm_decrypt(feature_flags_client.token_encrypted) + feature_flags_client.update_column(:token, token) + end + end + end +end diff --git a/db/schema.rb b/db/schema.rb index f6a445f3da6..58cc20d6e40 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -2653,6 +2653,26 @@ ActiveRecord::Schema.define(version: 2019_10_29_191901) do t.index ["project_id", "token_encrypted"], name: "index_feature_flags_clients_on_project_id_and_token_encrypted", unique: true end + create_table "packages_conan_file_metadata", force: :cascade do |t| + t.bigint "package_file_id", null: false + t.datetime_with_timezone "created_at", null: false + t.datetime_with_timezone "updated_at", null: false + t.string "recipe_revision", limit: 255, default: "0", null: false + t.string "package_revision", limit: 255 + t.string "conan_package_reference", limit: 255 + t.integer "conan_file_type", limit: 2, null: false + t.index ["package_file_id"], name: "index_packages_conan_file_metadata_on_package_file_id", unique: true + end + + create_table "packages_conan_metadata", force: :cascade do |t| + t.bigint "package_id", null: false + t.datetime_with_timezone "created_at", null: false + t.datetime_with_timezone "updated_at", null: false + t.string "package_username", limit: 255, null: false + t.string "package_channel", limit: 255, null: false + t.index ["package_id"], name: "index_packages_conan_metadata_on_package_id", unique: true + end + create_table "packages_maven_metadata", force: :cascade do |t| t.bigint "package_id", null: false t.datetime_with_timezone "created_at", null: false @@ -4326,6 +4346,8 @@ ActiveRecord::Schema.define(version: 2019_10_29_191901) do add_foreign_key "operations_feature_flag_scopes", "operations_feature_flags", column: "feature_flag_id", on_delete: :cascade add_foreign_key "operations_feature_flags", "projects", on_delete: :cascade add_foreign_key "operations_feature_flags_clients", "projects", on_delete: :cascade + add_foreign_key "packages_conan_file_metadata", "packages_package_files", column: "package_file_id", on_delete: :cascade + add_foreign_key "packages_conan_metadata", "packages_packages", column: "package_id", on_delete: :cascade add_foreign_key "packages_maven_metadata", "packages_packages", column: "package_id", name: "fk_be88aed360", on_delete: :cascade add_foreign_key "packages_package_files", "packages_packages", column: "package_id", name: "fk_86f0f182f8", on_delete: :cascade add_foreign_key "packages_package_metadata", "packages_packages", column: "package_id", on_delete: :cascade |