# \[Screencast\] ActiveRecord Migrations

**URL:** <https://metaruby.com/t/screencast-activerecord-migrations/1210>\
**Category:** Learning Ruby\
**Created:** [August 28, 2017, 11:57am UTC](https://metaruby.com/t/screencast-activerecord-migrations/1210 "2017-08-28T11:57:34Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![kobaltz](https://metaruby.com/user_avatar/metaruby.com/kobaltz/32/982_2.png) [@kobaltz](https://metaruby.com/u/kobaltz)\
**Post date:** [August 28, 2017, 11:57am UTC](https://metaruby.com/t/screencast-activerecord-migrations/1210/1 "2017-08-28T11:57:34Z")

</div>

This episode covers different tips and tricks around database migration files. [https://www.driftingruby.com/episodes/activerecord-migrations](https://www.driftingruby.com/episodes/activerecord-migrations?utm_medium=social&utm_campaign=weekly_episode&utm_source=metaruby)

> **[Episode 95 - ActiveRecord Migrations | Drifting Ruby](https://www.driftingruby.com/episodes/activerecord-migrations?utm_medium=social&utm_campaign=weekly_episode&utm_source=metaruby)**
>
> This episode covers different tips and tricks around database migration files.

---

<div class="post-metadata">

**Author:** ![PikachuEXE](https://metaruby.com/user_avatar/metaruby.com/pikachuexe/32/854_2.png) [@PikachuEXE](https://metaruby.com/u/PikachuEXE)\
**Post date:** [September 11, 2017, 6:16am UTC](https://metaruby.com/t/screencast-activerecord-migrations/1210/2 "2017-09-11T06:16:35Z")

</div>

Thanks.  
A good new option to be used in migration for adding index to avoid locking is:

```ruby
class AddMigrationForPerformanceExample < ActiveRecord::Migration[5.0]

  disable_ddl_transaction!

  def change
    add_index(
      :table,
      [
        :col_1,
        :col_2,
      ],

      # Prevent locking thus downtime
      # Requires `disable_ddl_transaction!`
      # https://robots.thoughtbot.com/how-to-create-postgres-indexes-concurrently-in
      algorithm: :concurrently,
    )
  end
end

```
