```ruby
class CreateProjectMirrorData < ActiveRecord::Migration
  include Gitlab::Database::MigrationHelpers

  DOWNTIME = false

  def up
    if table_exists?(:project_mirror_data)
      add_column :project_mirror_data, :status, :string unless column_exists?(:project_mirror_data, :status)
      add_column :project_mirror_data, :jid, :string unless column_exists?(:project_mirror_data, :jid)
      add_column :project_mirror_data, :last_error, :text unless column_exists?(:project_mirror_data, :last_error)
    else
      create_table :project_mirror_data do |t|
        t.references :project, index: true, foreign_key: { on_delete: :cascade }
        t.string :status
        t.string :jid
        t.text :last_error
      end
    end
  end

  def down
    drop_table(:project_mirror_data) if table_exists?(:project_mirror_data)
  end
end
```

Rollback changes made to CreateProjectMirrorData
user
```ruby
class CreateProjectMirrorData < ActiveRecord::Migration
  include Gitlab::Database::MigrationHelpers

  DOWNTIME = false

  def up
    return if table_exists?(:project_mirror_data)

    create_table :project_mirror_data do |t|
      t.references :project, index: true, foreign_key: { on_delete: :cascade }
      t.string :status
      t.string :jid
      t.text :last_error
    end
  end

  def down
    drop_table(:project_mirror_data) if table_exists?(:project_mirror_data)
  end
end
```
assistant