CakeSchema

CakeSchema จริงๆ แล้วผมก็ไม่ค่อยเข้าใจเท่าไหร่ว่ามันเอาไว้ทำอะไรบ้าง. เข้าไปดูในเว็บต่างๆ[1] เขาบอกว่าเอาไปใช้ทำ Migration ได้แบบใน Ruby on Rails แต่ผมก็งงๆ อยู่ดีว่า migration เอาไว้ทำอะไรบ้าง. เท่าที่เห็นได้คร่าวๆ คือไม่ต้องเขียน SQL ตรงๆ แต่มาเขียน PHP แล้ว CakePHP จะไป generate SQL ให้แทน เวลาสร้าง database. แล้วก็เวลาที่จะเปลี่ยนแปลงโครงสร้างของ table ก็ทำผ่าน CakePHP ได้ด้วย … แบบนี้เขาเรียก migration หรือเปล่า?

ผมจะลองใช้ CakeSchema มาสร้าง table สำหรับเก็บ username และ password ดู. เริ่มแรกก็สร้างไฟล์ users.php ใน app/config/sql ดังนี้:

 array('type'=>'integer',
                            'null' => false,
                            'key' => 'primary',
                            'extra' => 'auto_increment'),
              'username' =>  array('type'=>'string',
                                   'null' => false,
                                   'length' => 255),
              'password' =>  array('type'=>'string',
                                   'null' => false,
                                   'length' => 255));

}

?>

จากนั้นเวลาจะสรั้าง database ก็ cd เข้าไปใน folder: cake/console แล้วก็สั่ง

./cake schema run create users เสร็จแล้วก็ตอบ y ไปเรื่อยๆ ก็เป็นอันใช้ได้. หน้าจะเป็นประมาณด้านล่างนี้

Hello vee,

Welcome to CakePHP v1.2.0.6311 beta Console
---------------------------------------------------------------
Cake Schema Shell
---------------------------------------------------------------

The following tables will drop.
users

Are you sure you want to drop the tables? (y/n)
[n] > y
Dropping tables.
users updated.

The following tables will create.
users

Are you sure you want to create the tables? (y/n)
[y] > y
Creating tables.
users updated.
End create.

ส่วนเรื่อง migration หรืออื่นๆ ไว้ให้ผมทำเป็นก่อน คงจะได้เขียนต่อไป.

อ้างอิง

[1] http://cakebaker.42dh.com/2008/04/13/migrations-the-cakephp-way/

4 thoughts on “CakeSchema

  1. ผมชอบ tag cakephp ของคุณจังครับ😉 migration เนี้ยไม่รู้ว่าเท่าของ rails ไหมแต่ของ rails เนี้ยเจ้าตัว rake มันสามารถย้อนการ migrate ได้ทำให้เวลาเราเปลี่ยนแปลง โครงสร้างของ database แล้วมีปัญหาเราก็ย้อนกลับไปใช้ของตัวเก่าได้อย่างทันที

    ประโยชน์ของ migrate ก็คงเป็นเรื่องการสร้าง / เปลี่ยนแปลง db table โดยไม่ต้องผ่าน sql ละมั่งครับ (แต่ผมว่าถ้ามันย้อนได้ด้วยเหมือน rails ก็คงดีเหมือนกัน)

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s