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
2 comments:
Thanks for sharing the article.
Post a Comment