diff options
Diffstat (limited to 'db/migrate/20221214201256_create_user_achievements.rb')
-rw-r--r-- | db/migrate/20221214201256_create_user_achievements.rb | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/db/migrate/20221214201256_create_user_achievements.rb b/db/migrate/20221214201256_create_user_achievements.rb new file mode 100644 index 00000000000..6e82cd255cd --- /dev/null +++ b/db/migrate/20221214201256_create_user_achievements.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +class CreateUserAchievements < Gitlab::Database::Migration[2.1] + enable_lock_retries! + + def up + create_table :user_achievements do |t| + t.references :achievement, + null: false, + index: false, + foreign_key: { on_delete: :cascade } + t.bigint :user_id, + null: false + t.bigint :awarded_by_user_id, + null: true + t.bigint :revoked_by_user_id, + index: true, + null: true + t.timestamps_with_timezone null: false + t.datetime_with_timezone :revoked_at, null: true + t.index 'achievement_id, (revoked_by_user_id IS NULL)', + name: 'index_user_achievements_on_achievement_id_revoked_by_is_null' + t.index 'user_id, (revoked_by_user_id IS NULL)', + name: 'index_user_achievements_on_user_id_revoked_by_is_null' + t.index 'awarded_by_user_id, (revoked_by_user_id IS NULL)', + name: 'index_user_achievements_on_awarded_by_revoked_by_is_null' + end + end + + def down + drop_table :user_achievements + end +end |