23 February 2016

Rails - Migration Ruby on Rails

Brillian-info. Rails - Migration Ruby on Rails.
Migrasi pada rails dapat dilakukan menggunakan Ruby untuk merubah skema database Anda, untuk memungkinkannya membuat version control system, untuk membuat sinkronisasi dengan kode yang berkembang.

Beberapa kegunaan migrations, diantaranya :
  • Team Developer - jika seseorang membuat perubahan skema, developer lain hanya butuh update, dan run "rake db:migrate".
  • Production Servers - Run "rake db:migrate" ketika Anda mengeluarkan new release untuk membuat database up to date.
  • Multiple machine - Jika Anda mendevelop pada computer desktop dan sebuah laptop, atau mendevelop di beberapa lokasi, migration dapat membantu Anda untuk tetap tersinkron.

Apa saja yang dapat dilakukan migration?

  • create_table(name,options)
  • drop_table(name)
  • rename_table(old_name,new_name)
  • add_column(table_name,column_name,type,options)
  • rename_column(table_name,column_name,new_column_name)
  • change_column(table_name,column_name,type,options)
  • remove_column(table_name,column_name)
  • add_index(table_name,column_name,index_type)
  • remove_index(table_name,column_name)

Migrations support basis data

  • string
  • text
  • integer
  • float
  • datetime and timestamp
  • date and time
  • binary
  • boolean

Valid Column option

  • limit (:limit => "10")
  • default (:default => "haha")
  • null (:null => false implies NOT NULL)
Untuk lebih jelasnya Anda dapat melihat API rails.

Membuat Migrations

Berikut contoh umum untuk membuat migrations
rails generate migration table_name
Command di atas akan membuat file di db/migrate/001_table_name.rb. File migrations ini akan berisi sintax standar Ruby.

Sebagai contoh, saya akan membuat Posts migrations.
rails generate migration posts

Edit Kode tersebut :
class CreatePosts < ActiveRecord::Migration
  def self.up
    create_table :posts do |t|
        t.column :title, :string, :null=>false
        t.column :content, :string
        t.column :tags, :string
        t.column :date_posting, :date
        t.timestamps null: false
    end
  end

  def self.down
          drop_table :posts
      end
end
method self.up digunakan untuk migrasi versi terbaru.
method self.down digunakan untuk roll back versi jika dibutuhkan.
Pada script di atas saya mencontohkan untuk membuat table posts.

Runing Migration

Sekarang, setelah kode tersebut siap. Waktunya untuk melakukan migrasi ke dalam database. Untuk melakukannya, kita menggunakan command promt dengan dir aplikasi kita. Kemudian jalankan perintah ini :
rake db:migrate

 Kesimpulan :

Migration digunakan untuk mengubah skema database aplikasi kita, dapat bergunak untuk version control agar selalu up to date.

2 comments:

tito novanto said...
This comment has been removed by a blog administrator.
Nick said...

Thanks for sharing the article.