既存のマイグレーションの削除

GitLabプロジェクトから既存のマイグレーションを削除する場合、そのマイグレーションがすでに過去のリリースや現在のリリースに含まれていて、GitLab.comやセルフマネージドインスタンスですでに実行されている可能性を考慮する必要があります。

そのため、既存のマイグレーションを削除することはできません:

  • データベースに導入された変更が適切にロールバックされないため、スキーマの不整合が発生します。
  • schema_versions テーブルに、コードベースにはもう存在しないマイグレーションを示すレコードが残っています。

削除する代わりに、マイグレーションを無効にすることができます。

マイグレーションを無効にするための前提条件

マイグレーションを無効にできるのは以下の場合です:

  • GitLab.comでタイムアウトや一般的なイシューが発生した場合。
  • 例えば、機能変更によって変更が不要になった場合などです。
  • マイグレーションはデータ移行のみ、つまりデータベーススキーマは変更しません。

マイグレーションを無効にするには?

マイグレーションを無効にするには、以下の手順がすべてのタイプのマイグレーションに適用されます:

  1. #up#down もしくは#perform メソッド内部のコードを削除し、代わりに# no-op のコメントを追加することでマイグレーションを無効にします。
  2. コードを削除した理由を説明するコメントを追加します。

マイグレーションを無効にするには、データベースメンテナーの明確な承認者が必要です。

使用例