2016-06-08 168 views
-1

我在學習laravel 5,它與數據庫有關係。我可以找到關於如何使用sqlite和mysql的大量信息,但是我在理解什麼是遷移,它們如何與數據庫以及我的主要問題之間存在問題......
如果我有一個預先創建的postgres數據庫, ,比方說,10個表格及其關係已經開始運行,我怎樣才能讓Laravel與他們互動?
例如,我曾這樣定義我的Postgres架構表:用PostgreSQL瞭解Laravel遷移

CREATE TABLE "users" (
"id" integer NOT NULL DEFAULT nextval('users_seq'), 
"name" character varying(30) NOT NULL, 
"email" character varying(50) NOT NULL UNIQUE, 
"password" character varying(120) NOT NULL UNIQUE, 
CONSTRAINT users_pk PRIMARY KEY ("id") 
) WITH (
    OIDS=FALSE 
); 

我已經知道Laravel自帶的用戶表的通用遷移,但究竟如何,我應該從內部Laravel工作連接到我的分貝? 順便說一句,我的數據庫的名稱將是dummy
我可以使用類似遷移類的東西嗎?
但據我所知,遷移是創建/刪除/ etc表,對吧?
或者我應該直接創建一個控制器來與de db進行交互嗎?

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Http\Requests; 

class PagesController extends Controller 
{ 
    public function index() 
    { 
     $users = DB::table('users')->get(); 
     return view('DBHandler',compact('users')); 
    } 
} 

而且我想這是查詢生成器的做事方式和雄辯的方式是完全不同的。
任何幫助,將不勝感激。

回答

0

從博客laravelbooks.com,報價:

[...]遷移是幫助你,而不必刪除並重新演變您的應用程序(也被稱爲其DDL)的數據庫模式的Laravel方式每次更改時創建數據庫。每次發生更改時不必刪除並重新創建數據庫,這意味着您不會丟失開發數據。執行遷移時所做的唯一更改是將模式從一個版本遷移到另一個版本所需的更改,無論該遷移是及時向前還是向後。

Laravel遷移不僅爲您提供了一種以迭代方式更改數據庫模式的方法,但它可以讓您使用PHP代碼而不是SQL來執行操作! Laravel Schema Builder允許我們快速創建數據庫表格並插入列或索引。它使用乾淨和表達的語法來實現數據庫操作。您可能會將Laravel遷移視爲您數據庫的版本控制! [...]

在那裏我發現了一個比官方文檔更具解釋性的laravel方式,雖然後來它也不錯

1

根據Laravel的文檔:

遷移就像版本控制數據庫,允許團隊輕鬆修改和共享應用程序的數據庫模式。遷移通常與Laravel架構構建器配合使用,以輕鬆構建應用程序的數據庫架構。

如果你有一個團隊與您合作,強烈建議您使用它們必須在方案應用到應用程序的工作變化,這些遷移讓您將更改應用到數據庫般的落差,創建,更新等等。另一方面,如果你打算開始用已經創建的Schema開發,你可以用Eloquent與你的方案進行交互。

爲Laravel採取信息從數據庫與口才一個ORM,這裏是Laravel文檔介紹的方法:

能言善辯的ORM包含Laravel提供了一個美麗的,簡單的ActiveRecord實現與合作的數據庫。每個數據庫表都有一個對應的「模型」,用於與該表進行交互。模型允許您查詢表中的數據,並將新記錄插入表中。

所以你必須爲你的每一個表格創建一個模型,除了許多表格之外。如果你的表是Users必須命名模型用戶和雄辯把它自動如果沒有,則必須在模型像這樣覆蓋$table屬性:

public $table = 'user'; 

其餘的你可以用雄辯做什麼,你可以找到它在文檔 here

我希望這可以幫助你。