<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>laravel migrate - itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</title>
	<atom:link href="https://www.itoffside.com/tag/laravel-migrate/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.itoffside.com</link>
	<description>ข้อมูลข่าวสารและเรื่องราวบนโลกของไอทีที่ ล้ำหน้า พร้อมสาระการเขียนโปรแกรมคอมพิวเตอร์</description>
	<lastBuildDate>Sun, 01 Jan 2023 09:52:12 +0000</lastBuildDate>
	<language>th</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>

<image>
	<url>https://www.itoffside.com/wp-content/uploads/2020/04/cropped-favicon-96x96-1-32x32.png</url>
	<title>laravel migrate - itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</title>
	<link>https://www.itoffside.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Laravel &#8211; EP12 Database กับการทำ Migration</title>
		<link>https://www.itoffside.com/laravel-database-migration/</link>
					<comments>https://www.itoffside.com/laravel-database-migration/#comments</comments>
		
		<dc:creator><![CDATA[Onmobile]]></dc:creator>
		<pubDate>Sat, 06 Jun 2020 16:47:20 +0000</pubDate>
				<category><![CDATA[Laravel]]></category>
		<category><![CDATA[laravel migrate]]></category>
		<category><![CDATA[laravel migration]]></category>
		<category><![CDATA[PHP Framework]]></category>
		<guid isPermaLink="false">https://www.itoffside.com/?p=2905</guid>

					<description><![CDATA[<p>Database migrate ของ Laravel เป็นการทำสคริปเพื่อ Generate ตาราง ให้เราผ่านคำสั่ง Laravel ที่เราเขียนขึ้นมา ซึ่งข้อดีช่วยให้ทำเราสามารถทำงานร่วมกันเป็นทีมได้ดียิ่งขึ้น ยกตัวอย่างให้เห็นภาพนะครับ เช่น ปกติเวลาเรา ทำงานมีการสร้าง ตารางใหม่หรือ อัพเดทฟิล์ดในตาราง ที่นี้เราก็ ไปใช้พวก phpmyadmin แล้ว cop...</p>
<p>The post <a href="https://www.itoffside.com/laravel-database-migration/">Laravel – EP12 Database กับการทำ Migration</a> first appeared on <a href="https://www.itoffside.com">itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Database migrate ของ Laravel เป็นการทำสคริปเพื่อ Generate ตาราง ให้เราผ่านคำสั่ง Laravel ที่เราเขียนขึ้นมา ซึ่งข้อดีช่วยให้ทำเราสามารถทำงานร่วมกันเป็นทีมได้ดียิ่งขึ้น ยกตัวอย่างให้เห็นภาพนะครับ เช่น ปกติเวลาเรา ทำงานมีการสร้าง ตารางใหม่หรือ อัพเดทฟิล์ดในตาราง ที่นี้เราก็ ไปใช้พวก phpmyadmin แล้ว copy script ส่งให้กันไปๆ มาๆ การทำงานหลายๆคนก็เริ่มลำบากละ เพราะว่า ต้องมานั่ง run script แล้วเผลอๆ บางคนลืม ทำสคริปส่งไปให้อีกทำให้ เกิดปัญหาขึ้นมา ดังนั้น Migrate จึงเกิดมาการนี้ ให้เหล่าโปรแกรมเมอร์ เวลาต้องการสร้างหรือแก้ไขตาราง ก็มาเขียนคำสั่ง (PHP) แล้ว Generate เอา ทำให้ เวลาคนอื่น มาทำงานต่อก็เพียงแค่ Pull code จาก เพื่อนแล้ว ก็ run migrate เป็นอันจบแล้ว ได้ฐานข้อมูลล่าสุด พร้อมเขียนโค๊ด ได้ทันที<span id="more-2905"></span></p>
<p>สำหรับบทความนี้ ผมมาสอนวิธีใช้งานกันนะครับ</p>
<p><strong>Case study: สร้างตาราง orders</strong></p>
<p><strong>โดยมีฟิล์ดดังนี้</strong><br />
id (int), name (varchar 100), email (varchar 100), tel (varchar 20), detail (text)</p>
<p>ให้เราเปิด command line ขึ้นมานะครับ แล้วพิมพ์คำสั่ง สร้างไฟล์ migration</p><pre class="crayon-plain-tag">php artisan make:migration create_orders_table</pre><p><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-3248" src="https://www.itoffside.com/wp-content/uploads/2018/11/2020-05-10_0-18-59.jpg" alt="" width="566" height="143" srcset="https://www.itoffside.com/wp-content/uploads/2018/11/2020-05-10_0-18-59.jpg 566w, https://www.itoffside.com/wp-content/uploads/2018/11/2020-05-10_0-18-59-300x76.jpg 300w, https://www.itoffside.com/wp-content/uploads/2018/11/2020-05-10_0-18-59-80x20.jpg 80w" sizes="(max-width: 566px) 100vw, 566px" /></p>
<p>หลังจากเราสร้างมาแล้ว ให้เรา เขียน code migrate ดังนี้</p><pre class="crayon-plain-tag">&lt;?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateOrdersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('orders', function (Blueprint $table) {
            $table-&gt;bigIncrements('id');
            $table-&gt;string('name', 100);
            $table-&gt;string('email', 100);
            $table-&gt;string('tel', 20)-&gt;nullable();
            $table-&gt;text('detail')-&gt;nullable();
            $table-&gt;timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('orders');
    }
}</pre><p>เมื่อเขียนคำสั่ง migrate เรียบร้อยให้เรา run command</p><pre class="crayon-plain-tag">php artisan migrate</pre><p>แล้วกลับไปดู ฐานข้อมูล ของเรา จะเห็นว่ามีการเพิ่มตาราง มาแล้ว<br />
<img decoding="async" class="alignnone size-full wp-image-3256" src="https://www.itoffside.com/wp-content/uploads/2018/11/laravel-migrate-01.png" alt="Laravel Migrate" width="737" height="251" srcset="https://www.itoffside.com/wp-content/uploads/2018/11/laravel-migrate-01.png 737w, https://www.itoffside.com/wp-content/uploads/2018/11/laravel-migrate-01-300x102.png 300w, https://www.itoffside.com/wp-content/uploads/2018/11/laravel-migrate-01-80x27.png 80w" sizes="(max-width: 737px) 100vw, 737px" /></p>
<p>ทั้งนี้เรายังสามารถ Rollback migration ของเราที่ทำมาด้วยคำสั่ง</p><pre class="crayon-plain-tag">php artisan migrate:rollback</pre><p>หรือต้องการ rollback กลับไปยังขั้นตอนใดขั้นตอนหนึ่งก็ใช้คำสั่ง</p><pre class="crayon-plain-tag">php artisan migrate:rollback --step=5</pre><p>เรามาดูคำสั่งแต่ละคำสั่งของ migrate</p>
<h3>ตาราง(Tables)</h3>
<p><strong>สร้างตาราง</strong></p><pre class="crayon-plain-tag">Schema::create('orders', function (Blueprint $table) {
  //code 
}</pre><p><strong>เปลี่ยนชื่อตาราง</strong></p><pre class="crayon-plain-tag">Schema::rename($from, $to);</pre><p><strong>ลบตาราง</strong></p><pre class="crayon-plain-tag">Schema::drop('users');</pre><p></p>
<h3>คอลัมน์(Columns)</h3>
<p>หลังจากเรามีการสร้างตารางมาแล้วให้เราเขียนคำสั่ง สร้าง columns ลงในตารางภายใน Schema::table ฟังก์ชั่น&nbsp;</p>
<p><strong>สร้างคอลัมน์</strong></p><pre class="crayon-plain-tag">Schema::table('users', function (Blueprint $table) {
    $table-&gt;string('email');
});</pre><p>จะเห็นว่าเราจะสามารถกำหนดประเภทคอลัมน์ได้ว่า เป็นอะไร จากตัวอย่างเป็น string (varchar)&nbsp; มาดูว่าประเภท คอลัมน์ที่มีให้ใส่มีอะไรบ้าง</p>
<p><span style="text-decoration: underline;"><strong>ประเภทคอลัมน์ที่สามารถกำหนดได้</strong></span></p>
<table>
<thead>
<tr>
<th>Command</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">id</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>Alias of&nbsp;<code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">bigIncrements</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'id'</span><span class="token punctuation">)</span></code>.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">foreignId</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'user_id'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>Alias of&nbsp;<code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">unsignedBigInteger</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'user_id'</span><span class="token punctuation">)</span></code>.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">bigIncrements</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'id'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>Auto-incrementing UNSIGNED BIGINT (primary key) equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">bigInteger</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'votes'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>BIGINT equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">binary</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'data'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>BLOB equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">boolean</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'confirmed'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>BOOLEAN equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">char</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'name'</span><span class="token punctuation">,</span> <span class="token number">100</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>CHAR equivalent column with a length.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">date</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'created_at'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>DATE equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">dateTime</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'created_at'</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>DATETIME equivalent column with precision (total digits).</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">dateTimeTz</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'created_at'</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>DATETIME (with timezone) equivalent column with precision (total digits).</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">decimal</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'amount'</span><span class="token punctuation">,</span> <span class="token number">8</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>DECIMAL equivalent column with precision (total digits) and scale (decimal digits).</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">double</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'amount'</span><span class="token punctuation">,</span> <span class="token number">8</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>DOUBLE equivalent column with precision (total digits) and scale (decimal digits).</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">enum</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'level'</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token single-quoted-string string">'easy'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'hard'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>ENUM equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">float</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'amount'</span><span class="token punctuation">,</span> <span class="token number">8</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>FLOAT equivalent column with a precision (total digits) and scale (decimal digits).</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">geometry</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'positions'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>GEOMETRY equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">geometryCollection</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'positions'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>GEOMETRYCOLLECTION equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">increments</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'id'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>Auto-incrementing UNSIGNED INTEGER (primary key) equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">integer</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'votes'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>INTEGER equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">ipAddress</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'visitor'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>IP address equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">json</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'options'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>JSON equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">jsonb</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'options'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>JSONB equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">lineString</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'positions'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>LINESTRING equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">longText</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'description'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>LONGTEXT equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">macAddress</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'device'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>MAC address equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">mediumIncrements</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'id'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>Auto-incrementing UNSIGNED MEDIUMINT (primary key) equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">mediumInteger</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'votes'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>MEDIUMINT equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">mediumText</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'description'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>MEDIUMTEXT equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">morphs</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'taggable'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>Adds&nbsp;<code class=" language-php">taggable_id</code>&nbsp;UNSIGNED BIGINT and&nbsp;<code class=" language-php">taggable_type</code>&nbsp;VARCHAR equivalent columns.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">uuidMorphs</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'taggable'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>Adds&nbsp;<code class=" language-php">taggable_id</code>&nbsp;CHAR(36) and&nbsp;<code class=" language-php">taggable_type</code>&nbsp;VARCHAR(255) UUID equivalent columns.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">multiLineString</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'positions'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>MULTILINESTRING equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">multiPoint</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'positions'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>MULTIPOINT equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">multiPolygon</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'positions'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>MULTIPOLYGON equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">nullableMorphs</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'taggable'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>Adds nullable versions of&nbsp;<code class=" language-php"><span class="token function">morphs</span><span class="token punctuation">(</span><span class="token punctuation">)</span></code>&nbsp;columns.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">nullableUuidMorphs</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'taggable'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>Adds nullable versions of&nbsp;<code class=" language-php"><span class="token function">uuidMorphs</span><span class="token punctuation">(</span><span class="token punctuation">)</span></code>&nbsp;columns.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">nullableTimestamps</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>Alias of&nbsp;<code class=" language-php"><span class="token function">timestamps</span><span class="token punctuation">(</span><span class="token punctuation">)</span></code>&nbsp;method.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">point</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'position'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>POINT equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">polygon</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'positions'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>POLYGON equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">rememberToken</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>Adds a nullable&nbsp;<code class=" language-php">remember_token</code>&nbsp;VARCHAR(100) equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">set</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'flavors'</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token single-quoted-string string">'strawberry'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'vanilla'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>SET equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">smallIncrements</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'id'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>Auto-incrementing UNSIGNED SMALLINT (primary key) equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">smallInteger</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'votes'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>SMALLINT equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">softDeletes</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'deleted_at'</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>Adds a nullable&nbsp;<code class=" language-php">deleted_at</code>&nbsp;TIMESTAMP equivalent column for soft deletes with precision (total digits).</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">softDeletesTz</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'deleted_at'</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>Adds a nullable&nbsp;<code class=" language-php">deleted_at</code>&nbsp;TIMESTAMP (with timezone) equivalent column for soft deletes with precision (total digits).</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">string</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'name'</span><span class="token punctuation">,</span> <span class="token number">100</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>VARCHAR equivalent column with a length.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">text</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'description'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>TEXT equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">time</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'sunrise'</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>TIME equivalent column with precision (total digits).</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">timeTz</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'sunrise'</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>TIME (with timezone) equivalent column with precision (total digits).</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">timestamp</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'added_on'</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>TIMESTAMP equivalent column with precision (total digits).</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">timestampTz</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'added_on'</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>TIMESTAMP (with timezone) equivalent column with precision (total digits).</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">timestamps</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>Adds nullable&nbsp;<code class=" language-php">created_at</code>&nbsp;and&nbsp;<code class=" language-php">updated_at</code>&nbsp;TIMESTAMP equivalent columns with precision (total digits).</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">timestampsTz</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>Adds nullable&nbsp;<code class=" language-php">created_at</code>&nbsp;and&nbsp;<code class=" language-php">updated_at</code>&nbsp;TIMESTAMP (with timezone) equivalent columns with precision (total digits).</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">tinyIncrements</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'id'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>Auto-incrementing UNSIGNED TINYINT (primary key) equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">tinyInteger</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'votes'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>TINYINT equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">unsignedBigInteger</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'votes'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>UNSIGNED BIGINT equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">unsignedDecimal</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'amount'</span><span class="token punctuation">,</span> <span class="token number">8</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>UNSIGNED DECIMAL equivalent column with a precision (total digits) and scale (decimal digits).</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">unsignedInteger</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'votes'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>UNSIGNED INTEGER equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">unsignedMediumInteger</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'votes'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>UNSIGNED MEDIUMINT equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">unsignedSmallInteger</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'votes'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>UNSIGNED SMALLINT equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">unsignedTinyInteger</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'votes'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>UNSIGNED TINYINT equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">uuid</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'id'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>UUID equivalent column.</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token variable">$table</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">year</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'birth_year'</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></td>
<td>YEAR equivalent column.</td>
</tr>
</tbody>
</table>
<p>**ข้อมูลตารางประเภทคอลัมน์นำมาจาก https://laravel.com/docs</p>
<p><strong>Option เพิ่มเติมของคอลัมน์ (Column Modifiers)</strong></p>
<p>เช่นถ้าต้องการให้ column A สามารถว่างได้ สามารถเขียนได้ตาม code ด้านล่างนี้</p><pre class="crayon-plain-tag">Schema::table('users', function (Blueprint $table) {
    $table-&gt;string('email')-&gt;nullable();
});</pre><p>ซึ่ง option ของ column มีตามรายการ ด้านล่างนี้</p>
<table>
<thead>
<tr>
<th>Modifier</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code class=" language-php"><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">after</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'column'</span><span class="token punctuation">)</span></code></td>
<td>ทำการวางคอลัมน์ไว้หลัง &#8216;column&#8217; (สำหรับ MySQL)</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">autoIncrement</span><span class="token punctuation">(</span><span class="token punctuation">)</span></code></td>
<td>เซ็ต Integer ให้กับ auto-increment ให้กับคอลัมน์ พร้อมทั้งเป็น Primary key</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">charset</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'utf8mb4'</span><span class="token punctuation">)</span></code></td>
<td>ระบุ character ให้กับคอลัมน์ (สำหรับ MySQL)</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">collation</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'utf8mb4_unicode_ci'</span><span class="token punctuation">)</span></code></td>
<td>ระบุ collation (MySQL/PostgreSQL/SQL Server)</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">comment</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'my comment'</span><span class="token punctuation">)</span></code></td>
<td>ใส่ comment ให้กับคอลัมน์ได้</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token keyword">default</span><span class="token punctuation">(</span><span class="token variable">$value</span><span class="token punctuation">)</span></code></td>
<td>ระบุค่า &#8220;default&#8221; ให้กับคอลัมน์</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">first</span><span class="token punctuation">(</span><span class="token punctuation">)</span></code></td>
<td>วางคอลัมน์ไว้ลำดับแรกของตาราง (MySQL)</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">nullable</span><span class="token punctuation">(</span><span class="token variable">$value</span> <span class="token operator">=</span> <span class="token boolean constant">true</span><span class="token punctuation">)</span></code></td>
<td>สามารถให้คอลัมน์สามารถระบุค่าว่าง(null) ได้</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">storedAs</span><span class="token punctuation">(</span><span class="token variable">$expression</span><span class="token punctuation">)</span></code></td>
<td>สร้าง stored generated ให้กับคอลัมน์ (MySQL)</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">unsigned</span><span class="token punctuation">(</span><span class="token punctuation">)</span></code></td>
<td>เซ็ตคอลัมน์ที่เป็น type integer&nbsp; ให้ UNSIGNED (MySQL)</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">useCurrent</span><span class="token punctuation">(</span><span class="token punctuation">)</span></code></td>
<td>เซ็ตคอลัมน์ที่เป็น type TIMESTAMP&nbsp; ให้ CURRENT_TIMESTAMP เป็น default</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">virtualAs</span><span class="token punctuation">(</span><span class="token variable">$expression</span><span class="token punctuation">)</span></code></td>
<td>สร้าง virtual generated (MySQL)</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">generatedAs</span><span class="token punctuation">(</span><span class="token variable">$expression</span><span class="token punctuation">)</span></code></td>
<td>สร้าง identity กับ ระบุ sequence options ให้กับคอลัมน์ (PostgreSQL)</td>
</tr>
<tr>
<td><code class=" language-php"><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">always</span><span class="token punctuation">(</span><span class="token punctuation">)</span></code></td>
<td>กำหนดความสำคัญของค่าตามลำดับ input (PostgreSQL)</td>
</tr>
</tbody>
</table>
<p>**ข้อมูลตารางประเภทคอลัมน์นำมาจาก https://laravel.com/docs</p>
<p><strong>แก้ไขคอลัมน์</strong></p>
<p>เราสามารถแก้ไขคอลัมน์โดยการใส่ code ดังนี้</p><pre class="crayon-plain-tag">Schema::table('users', function (Blueprint $table) {
    $table-&gt;string('name', 50)-&gt;change();
});</pre><p>แต่การใช้คำสั่งแก้ไขเราต้องติดตั้ง composer ก่อน โดย run comman line ดังนี้</p><pre class="crayon-plain-tag">composer require doctrine/dbal</pre><p><strong>ลบคอลัมน์</strong></p>
<p>เราสามารถลบคอลัมน์โดยการใส่ code ดังนี้</p><pre class="crayon-plain-tag">Schema::table('users', function (Blueprint $table) {
    $table-&gt;dropColumn('votes');
});</pre><p><strong>ตั้งค่า Indexes</strong></p>
<p>ใน migration เราสามารถตั้งค่า index ให้กับคอลัมน์ได้ เช่น unique(), index(), primary() โดยดูตัวอย่างจาก code ดังนี้</p><pre class="crayon-plain-tag">$table-&gt;primary('id');
$table-&gt;primary(['id', 'parent_id']); //ตั้ง primary key หลายๆคอลัมน์
$table-&gt;unique('email');
$table-&gt;index('state');</pre><p>เราลองมาดูแบบ full code</p><pre class="crayon-plain-tag">&lt;?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateOrdersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('orders', function (Blueprint $table) {
            $table-&gt;integer('id');
            $table-&gt;string('name', 100);
            $table-&gt;string('email', 100);
            $table-&gt;string('tel', 20)-&gt;nullable();
            $table-&gt;text('detail')-&gt;nullable();
            $table-&gt;timestamps();

            $table-&gt;primary('id');
            $table-&gt;unique('email');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('orders');
    }
}</pre><p>สำหรับบทความ <strong>migration</strong> จบเพีงเท่านี้หากใครมีข้อสงสัยหรือคำถามใดๆ สามารถ comment มาได้ครับ</p><p>The post <a href="https://www.itoffside.com/laravel-database-migration/">Laravel – EP12 Database กับการทำ Migration</a> first appeared on <a href="https://www.itoffside.com">itOffside.com | บทความการเขียนโปรแกรม เรื่องราวข้อมูลเทคโนโลยี</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.itoffside.com/laravel-database-migration/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
