2013-06-23 116 views
0

我在Reddit上問過這個問題,但沒有收到答案。相反,我想我會在這裏嘗試。Laravel和數據庫設計

我是Laravel的新手,並且一直在閱讀文檔並觀看Jeffrey Way的NetTuts視頻。然而,我還沒有深入到太深,所以如果這個問題在其他地方得到了明確的答覆,請指出我的方向。

我來自CodeIgniter背景,對於我所做的所有項目,我通常在MySQL Workbench中設計我的數據庫。我也使用它來對模式進行更改,並將其作爲數據庫的可視化映射。 MySQL Workbench文件通常會通過Git與其他開發者交流。

Laravel似乎希望您使用遷移來創建表,這似乎是從MySQL Workbench方面直觀地反映出來的。我知道遷移作爲數據庫的版本控制,看起來相當不錯。然而,除此之外,我還沒有完全明白這一點。

任何人都可以向我解釋爲什麼我應該通過Laravel的遷移功能和我一直在做的方式來創建表格嗎?

+0

(一般情況下,如果您發送了一封郵件,請鏈接到其他問題,這樣讀者可以檢查是否在答覆時間之前在其他地方收到了答案,謝謝!) – halfer

+0

請看看這個:http:/ /www.laravelsd.com/我用它來創建我的遷移。 – Mick

回答

0

Laravel是一個PHP框架。像其他框架一樣,比如Zend,您的開發到部署時間將大大縮短,並且在其他開發人員可以理解的框架內開發,因爲您的項目變得更大,您需要更多的開發人員參與到未來。

遷移作爲Laravel的一部分,旨在快速輕鬆地設置數據庫方案,而無需輸入任何MySQL。它也正確地提出了模式。由於您的模式存在於文件中,因此您可以輕鬆地輕鬆回滾和傳輸模式。

+1

謝謝,這使得更有意義。 –

0

嗯,這是一個有效的關注。雖然Laravel沒有具體強迫你使用它,我能想到的它的實施有幾個原因:

  1. 兼容性。它適用於幾乎任何數據庫。如果您決定從MySQL更改爲PostgreSQL,則幾乎無需更改。
  2. 版本控制。正如你自己提到的那樣,它允許你控制數據庫中發生了什麼變化,並且提供了更新已經運行的數據庫的快捷方法。
  3. 易於使用。通過命令行調用它非常容易。這意味着在服務器端通過shell創建數據庫不會有任何問題。
0

Laravel進行遷移的主要原因是版本控制。創建遷移時,名稱會附加一個日期。我自己使用Laravel,我絕對喜歡遷移。與Schema構建者合作,它使我的生活變得非常簡單,而不使用古老的MySQL方法。這裏的架構和遷移的一些例子

簡單的命令來創建新的遷移文件:

php artisan migrate:make create_users_table 

裏面的用戶表遷移文件:

Schema::create('users', function($table){ 
    $table->increments('id'); [will create a increments field with name of ID] 
    $table->string('username'); [string field with name of username] 
    $table->string('password'); [password is a special field] 
    $table->text('body'); [string field with name of username] 
}); 

在所有你需要添加底是這樣的:

Schema::drop('users'); 

然後你運行migrate命令:

php artisan migrate 

它會將所有列添加到表中。

如果你想收回或添加到數據庫中,所有你需要做的就是運行這個

php artisan migrate:rollback

[你可以添加特定命令,這裏只回滾某些表]